我编写了一段短小的Java代码,导致出现NullPointerException异常。有没有人能解释这是为什么?代码:
int val = 2;
Boolean result = (val == 0) ? false : ((val == 1) ? true : null);
以下是简化版本代码,也会导致空指针异常:
Object result = (false) ? false : (false ? true : null);
但是这个:
int val = 2;
Boolean result = (val == 0) ? Boolean.FALSE : ((val == 1) ? true : null);
以及这个:
Object result = (false) ? Boolean.FALSE : (false ? true : null);
或者这样:
Object result = (false) ? (Boolean)false : (false ? true: null);
不是吗?
null
改成false
? - noMADboolean
而不是Boolean
可以避免许多空指针异常。 - AllTooSirnull.booleanValue()
导致了 NPE。 - AllTooSir