为什么这个很好,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 ×1