Вопрос

Я отлаживаю следующие строки кода


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

Здесь var.getvar2() и var3 относятся к типу Long.Во время отладки, когда условие выглядит как

10000 != 10000

тот if должен оценить false.Но с первого if, следующий Step Over переходит к

var4.add(var);

и следующий Step Over переходит к var4.add(var);

Это ошибка Netbeans?Или это с Long сравнение.

Я использую Netbeans IDE 6.5

Это было полезно?

Решение

Вы не можете сравнивать объекты по значению.Это сравнение будет верным только в том случае, если две сравниваемые ссылки относятся к одному и тому же объекту.Вместо этого используйте:

if (! var.getvar2().equals(var3)) {
   ...
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top