2009-08-26 72 views
0

我调试的代码下面几行的Netbeans 6.5调试问题


if (var.getvar2() != var3) { 
      var4.add(var); 
    } else { 
      isNeeded= true; 
      if (incomingPublishedDate.compare(modifiedDate) < 0) { 
       importNeeded = true; 
      } else { 
       var4.add(var); 
      } 
    } 

这里var.getvar2()var3Long类型。 调试时,当条件是这样

10000 != 10000 

if应该评估为false。但是从第一if,下一步在去

var4.add(var); 

,下一步在去var4.add(var);

这是一个NetBeans错误?还是与Long比较。

我使用NetBeans IDE的6.5

回答

2

不能通过值进行比较的对象。如果比较的两个引用指向同一个对象,则该比较只会成立。改用:

if (! var.getvar2().equals(var3)) { 
    ... 
} 
+0

正确。因此,这不是Netbeans问题,而是用户问题。 – KdgDev 2009-08-26 07:50:43

+0

只是为了确认,那么为什么要从var4.add(var);去var4.add(var);在其他部分? – Ajay 2009-08-26 08:31:32

+0

哦,我看到真正的问题是什么。添加一些虚拟的System.out.println(“blah”);下面的代码都会添加,并查看它们是否真的被代码调用。 或者复制到整个函数体中,你可能在打开/关闭括号时有问题(我看不到)。 – Zed 2009-08-26 08:38:03