不需要的 NullPointer三元运算符中的异常 - 为什么?
2022-08-31 22:23:02
在执行以下代码时,我得到一个 at 行:NullPointerException
value = condition ? getDouble() : 1.0;
在早期的行中,当我使用而不是一切工作时,这很奇怪。null
getDouble()
public class Test {
static Double getDouble() {
return null;
}
public static void main(String[] args) {
boolean condition = true;
Double value;
value = condition ? null : 1.0; //works fine
System.out.println(value); //prints null
value = condition ? getDouble() : 1.0; //throws NPE
System.out.println(value);
}
}
有人可以帮助我理解这种行为吗?