Pregunta

Estoy depurando las siguientes líneas de código


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

Aquí var.getvar2() y var3 son de tipo Long. Mientras se depura, cuando la condición es como sigue

10000 != 10000

la if debe evaluar a false. Pero desde el primer if, el siguiente paso a lo largo va

var4.add(var);

y el siguiente paso va a lo largo de var4.add(var);

Es esto un error Netbeans? ¿O es la comparación con Long.

Estoy utilizando NetBeans IDE 6.5

¿Fue útil?

Solución

No se puede comparar objetos por valor. Esa comparación sólo sería cierto si las dos referencias comparadas se refieren al mismo objeto. En lugar de utilizar:

if (! var.getvar2().equals(var3)) {
   ...
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top