2012-10-05 3 views
0

나는 두 번째 이클립스 디버거 중DefaultListModel.contains()는 무엇을합니까?

downsPanel.relsListModel.elementAt(4)==oldValue 

downsPanel.relsListModel.contains(oldValue) 

먼저 true 평가에 다음 식을 시청하고 있어요 - false에.

즉, 은 내가 예상 한 것을 수행하지 않습니다. 그러면 그것은 무엇을합니까?

+2

oldValue 클래스는 무엇입니까? 그것은 매우 이상한 equals 메서드가 있습니까? –

+1

당신 말이 맞았습니다. 리팩토링 후에 equals()를 수정하는 것을 잊어 버렸습니다. –

답변

1

두 테스트가 같은 지점에서 수행되었다고 가정 할 때, 이는 단지 하나만을 의미 할 수 있습니다. oldValue.equals(oldValue)false을 반환합니다.

문제는 해결해야 할 equals 방법에 있습니다.

1

DefaultListModel.contains(Object) 후원자에게 Vector 님의 contains 대표가 있습니다.

public boolean contains(Object elem) { 
    return delegate.contains(elem); 
} 

아마도 이것은 equals 관련 문제 (물론 hashCode를 해결하는 것을 잊지 마세요)입니다.