Eclipseデバッガーで次の式を見ています
downsPanel.relsListModel.elementAt(4)==oldValue
と
downsPanel.relsListModel.contains(oldValue)
それらの最初はに評価されtrue
、2番目は-に評価されfalse
ます。
これは、それcontains()
が私が期待することをしないことを意味します。それでは何をしますか?
Eclipseデバッガーで次の式を見ています
downsPanel.relsListModel.elementAt(4)==oldValue
と
downsPanel.relsListModel.contains(oldValue)
それらの最初はに評価されtrue
、2番目は-に評価されfalse
ます。
これは、それcontains()
が私が期待することをしないことを意味します。それでは何をしますか?
両方のテストが同じポイントで実行されたとすると、これは1つのことだけを意味する可能性があります:oldValue.equals(oldValue)
returns false
。
したがって、問題はequals
修正する必要のある方法にあります。
DefaultListModel.contains(Object)
バッキングに委任しVector
ますcontains
。
public boolean contains(Object elem) {
return delegate.contains(elem);
}
おそらくこれは関連する問題です(同様equals
に修正することを忘れないでください)。hashCode