문제

다음 줄의 코드를 디버깅하고 있습니다


    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, 다음 단계는 끝납니다

var4.add(var);

그리고 다음 단계는 끝납니다 var4.add(var);

이것은 netbeans 버그입니까? 아니면 Long 비교.

나는 사용 중입니다 Netbeans IDE 6.5

도움이 되었습니까?

해결책

객체를 값으로 비교할 수 없습니다. 이 비교는 두 참조가 동일한 객체를 참조하는 경우에만 해당됩니다. 대신 사용 :

if (! var.getvar2().equals(var3)) {
   ...
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top