2017-12-18 22 views
-5
if (responseEntity.getBody().getMeta().getCode() != ApiExceptionEnum.SUCCESS.code()) { 
    return null; 
} 

같은 코드,왜 1! = 1이 true를 반환합니까?

responseEntity.getBody().getMeta().getCode() -> Integer 1 
ApiExceptionEnum.SUCCESS.code() -> Integer 1 

경우에 따라서는 null를 돌려줍니다 !!

왜?

응답 비교 객체인지 또는 ==!= 검사 메모리 내의 동일한 장소를 가리키고,이 경우에는 레디 스

+2

'=='또는'! ='이 아닌 객체를 비교할 때'equals'를 사용합니다. – Jens

+0

같은 이유로'new Integer (1) == Integer.valueOf (1)'은'false'입니다. –

+0

고마워, 마침내 Integer.intValue를 사용하지만 Integer = 1, 같은 코드 인 경우 'Integer! = Integer'가 true를 반환합니다. –

답변

0

에서이다. 비교 된 객체에 저장된 값을 비교하려면 클래스의 모든 Java 객체에 의해 상속 된 .equals() 메소드를 사용하십시오.

+0

Interger가 1 일 때 왜 aotuunboxing을하지 않습니까? –

+0

@JasonYu equals() 메서드는 객체에 상속되므로 기본 유형은 Java에서 객체로 간주되지 않으며 아무 것도 상속하지 않습니다. 이 메서드를 호출하면 원시 형식이 아닌 개체를 비교한다는 의미입니다. –