2009-08-26 8 views
0

Je débogage les lignes de codeNetbeans 6.5 debug question


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

Ici var.getvar2() et var3 suivants sont de type Long. Bien que le débogage, lorsque la condition va comme

10000 != 10000 

le if devrait évaluer à false. Mais dès la première if, la prochaine étape Au cours va

var4.add(var); 

et l'étape suivante Plus va var4.add(var);

Est-ce un bug Netbeans? Ou est-ce avec la comparaison Long.

J'utilise Netbeans IDE 6.5

Répondre

2

Vous ne pouvez pas comparer des objets par valeur. Cette comparaison ne serait vraie que si les deux références comparées se réfèrent au même objet. Au lieu de cela, utilisez:

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

Correct. Comme ceci, ce n'est pas un problème de Netbeans, c'est un problème d'utilisateur. – KdgDev

+0

juste pour confirmer, alors pourquoi l'étape de var4.add (var); allez à var4.add (var); à l'intérieur de l'autre partie? – Ajay

+0

Oh je vois quel est le vrai problème. Ajoutez un mannequin System.out.println ("blah"); lignes ci-dessous à la fois ajoute, et voir si elles sont réellement appelées par le code. Ou copier dans le corps de la fonction entière, vous pourriez avoir un problème avec vos parenthèses d'ouverture/fermeture (je ne vois pas comment cependant). – Zed

Questions connexes