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