我正在 Eclipse 调试器中观看以下表达式
downsPanel.relsListModel.elementAt(4)==oldValue
和
downsPanel.relsListModel.contains(oldValue)
第一个评估为true,第二个评估为false。
这意味着contains()不符合我的预期。那它有什么作用呢?
我正在 Eclipse 调试器中观看以下表达式
downsPanel.relsListModel.elementAt(4)==oldValue
和
downsPanel.relsListModel.contains(oldValue)
第一个评估为true,第二个评估为false。
这意味着contains()不符合我的预期。那它有什么作用呢?
假设两个测试在同一点完成,这可能只意味着一件事:oldValue.equals(oldValue)返回false。
所以问题出在equals必须解决的方法上。
DefaultListModel.contains(Object)代表来后盾Vector的contains。
public boolean contains(Object elem) {
return delegate.contains(elem);
}
也许这是一个equals相关的问题(不要忘记修复hashCode)。