我调试的下面几行代码


    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

有帮助吗?

解决方案

您不能通过值进行比较的对象。如果两个引用相比指向同一个对象的比较只会是真实的。而是使用:

if (! var.getvar2().equals(var3)) {
   ...
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top