我正在调试以下代码行
if (var.getvar2() != var3) {
var4.add(var);
} else {
isNeeded= true;
if (incomingPublishedDate.compare(modifiedDate) < 0) {
importNeeded = true;
} else {
var4.add(var);
}
}
此处var.getvar2()
和var3
属于Long
类型。
调试时,条件如
10000 != 10000
if
应评估为false
。但是从第一个if
开始,下一个步骤将转到
var4.add(var);
,下一步结算转到var4.add(var);
这是一个Netbeans错误吗?或者是Long
比较。
我正在使用 Netbeans IDE 6.5
答案 0 :(得分:2)
您无法按值比较对象。如果比较的两个引用引用相同的对象,那么该比较才会成立。而是使用:
if (! var.getvar2().equals(var3)) {
...
}