Question

Je débogage les lignes de code ci-dessous


    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 sont de type Long. Lors du débogage, lorsque la condition va comme

10000 != 10000

le if doit évaluer à false. Mais dès la première if, l'étape suivante Plus va

var4.add(var);

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

Est-ce un bug Netbeans? Ou est-ce avec le comparision de Long.

J'utilise Netbeans IDE 6.5

Était-ce utile?

La solution

Vous ne pouvez pas comparer des objets par valeur. Cette comparaison ne serait vrai que si les deux références comparées font référence au même objet. Au lieu d'utiliser:

if (! var.getvar2().equals(var3)) {
   ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top