FindBugs - EQ_COMPARETO_USE_OBJECTS_EQUALS
사용자가 compareTo()를 override 했을 경우, 볼 수 있는 warning이다.
FindBugs의 code inspection에 따르면,
This class defines a `compareTo(...)` method but inherits its `equals()` method from `java.lang.Object`. Generally, the value of compareTo should return zero if and only if equals returns true. If this is violated, weird and unpredictable failures will occur in classes such as PriorityQueue. In Java 5 the PriorityQueue.remove method uses the compareTo method, while in Java 6 it uses the equals method.
>
> From the JavaDoc for the compareTo method in the Comparable interface:
>
> > It is strongly recommended, but not strictly required that `(x.compareTo(y)==0) == (x.equals(y))`. Generally speaking, any class that implements the Comparable interface and violates this condition should clearly indicate this fact. The recommended language is "Note: this class has a natural ordering that is inconsistent with equals.
이라는 설명을 볼 것이다.
이 문제의 해결책은,
hashCode()와 equals()를 실제 구조에 맞게 다시 override함으로써 해결 가능하다.
'Development > Java' 카테고리의 다른 글
war 배포시 root context로 하려면? (0) | 2012.01.02 |
---|---|
JUnit에서의 예외 인식 (0) | 2010.08.04 |
JUnit으로 test coverage를 높이는 습관 (0) | 2010.08.02 |
Eclipse의 hashCode+equals VS. Apache의 HashCodeBuilder+EqualsBuilder (0) | 2010.06.21 |
[Spring] MultiActionController에서 Validator 쓰기 (0) | 2009.09.01 |
Eclipse에서 java 소스로부터 클래스 다이어그램을 쉽게 만들자/ eUML2 (0) | 2009.08.06 |
javadoc과 package.html (0) | 2009.08.05 |
Eclipse에서 javadoc을 pdf로 출력하기 (0) | 2009.08.05 |