我正在 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
)。