Pergunta

Eu estou depurando as seguintes linhas de código


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

Aqui var.getvar2() e var3 são do tipo Long. Durante a depuração, quando a condição é assim

10000 != 10000

o if deve avaliar a false. Mas desde o primeiro if, o próximo Step Over vai para

var4.add(var);

E o próximo passo Durante vai para var4.add(var);

Este é um bug Netbeans? Ou é com a comparação Long.

Eu estou usando Netbeans IDE 6.5

Foi útil?

Solução

Você não pode comparar objetos de valor. Essa comparação só seria verdade se as duas referências em comparação referem-se ao mesmo objeto. Em vez disso use:

if (! var.getvar2().equals(var3)) {
   ...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top