Чому це кидає 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 якісь посилання, які підтверджують таку поведінку, особливо щодо другого випадку?