2010-06-09 7 views
8

안녕하세요, 위의 비교 사이에 차이점을 알고 싶습니다.차이점 null == 객체와 객체 == null

object.getItems() == null을 검사 할 때 널 포인터 예외가 발생합니다. 그러나 null == object.getItems()으로 변경하면 문제가 없습니다.

나는 이것을 들여다 보았다 what is the difference between null != object and object!=null 그러나 나는 만족스런 대답을 얻지 못했다.

+11

아니요, NPE가 던져지면 변경되지 않습니다. 이 두 표현식은 동일하므로 가정을 다시 확인하십시오. –

+0

나는 두 가지 방법으로 NPE를 얻는다. 당신이 그것을 시도 할 때 null은 정확히 무엇입니까? –

+0

완전한 Java 문을 게시하십시오. 아마도 문제는 잘못 배치되었거나 누락 된 부분 일 수 있습니다. –

답변

13

: NULL 사이 (비슷한 문제 Which is more effective: if (null == variable) or if (variable == null)?)

차이 == 물체와 물체 == 널

더 의미 론적 차이가 없다.

object.getItems() == nullnull == object.getItems()은 동일합니다.

은 아마 당신은

nonNullObj.equals(obj) 

obj.equals(nonNullObj) 

두 번째 대안은 경우에 NPE가 발생할 수 있기 때문에 수신자가 null (차이를 만들 수 있다는 사실과 그것을 혼합하고).

+0

두 번째 표현식이 NPE – Pedantic

+0

@Rozer 인 이유는 무엇입니까? obj가 null이면 .equals 메서드 호출은 NPE가됩니다. – aioobe