Java双三元空指针

时间:2015-04-20 14:46:29

标签: java ternary

这会产生空指针:

boolean treatNullAsFalse = false;
String what = null;
System.out.println(what == null ? (treatNullAsFalse ? false : null) :  what.equals("1")); // NULL POINTER

这不是。

boolean treatNullAsFalse = false;
String what = null;
System.out.println(what == null ? (treatNullAsFalse ? false : null) :  (Boolean)what.equals("1"));

任何帮助,为什么(布尔)演员修复了这个问题?我认为三元运算符在编译时会找出返回类型,但是这里有一些拆箱正在生成NPE。

0 个答案:

没有答案