Domanda

I sono il debug le seguenti righe di codice


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

Qui var.getvar2() e var3 sono di tipo Long. Durante il debug, quando la condizione va come

10000 != 10000

il if dovrebbe valutare a false. Ma dal primo if, il prossimo Step Over va a

var4.add(var);

e il passo successivo corso va a var4.add(var);

Questo è un bug Netbeans? O è con il confronto Long.

Sto usando IDE Netbeans 6.5

È stato utile?

Soluzione

Non è possibile confrontare gli oggetti per valore. Tale confronto sarebbe solo vero se i due riferimenti a confronto si riferiscono allo stesso oggetto. Invece utilizzare:

if (! var.getvar2().equals(var3)) {
   ...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top