在三元运算符中出现了不需要的空指针异常 - 为什么?
- 论坛
- 在三元运算符中出现了不需要的空指针异常 - 为什么?
16 浏览
在三元运算符中出现了不需要的空指针异常 - 为什么?
在执行下面的代码时,我在以下行收到一个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; //正常运行 System.out.println(value); //打印null value = condition ? getDouble() : 1.0; //抛出NPE System.out.println(value); } }
有人能帮我理解这种行为吗?