왜 이런 일이 발생합니까? NullPointerException
public static void main(String[] args) throws Exception {
Boolean b = true ? returnsNull() : false; // NPE on this line.
System.out.println(b);
}
public static Boolean returnsNull() {
return null;
}
이 동안하지 않습니다
public static void main(String[] args) throws Exception {
Boolean b = true ? null : false;
System.out.println(b); // null
}
?
용액을 대체하는 방식으로 인 false
으로 Boolean.FALSE
방지하기 null
에 박싱되는 boolean
불가능 실현합니다. 그러나 그것은 질문이 아닙니다. 문제는 왜 ? JLS에이 동작, 특히 두 번째 경우를 확인하는 참조가 있습니까?