小编Mar*_*rkL的帖子

双三元整数启动会导致空指针

为什么这个很好,x被设置为null:

boolean condition1 = false;
Integer x = condition1 ? 1 : null;
Run Code Online (Sandbox Code Playgroud)

这个很好,x被设置为2:

boolean condition1 = false, condition2 = true;
Integer x = condition1 ? 1 : condition2? 2 : null;
Run Code Online (Sandbox Code Playgroud)

但是,x应该设置为null会导致java.lang.NullPointerException

boolean condition1 = false, condition2 = false;
Integer x = condition1 ? 1 : condition2 ? 2 : null;
Run Code Online (Sandbox Code Playgroud)

解决方案是使用:

Integer x = condition1 ? (Integer)1 : condition2 ? 2 : null;
Run Code Online (Sandbox Code Playgroud)

但我不清楚为什么单个三元运算符工作正常,但不是双精度运算符.

java

9
推荐指数
1
解决办法
136
查看次数

标签 统计

java ×1