2009-08-26 71 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