小编Mic*_*ail的帖子

为什么将三元语句中的空值赋给布尔变量会抛出NPE?

我有一部分代码像这样:

public static void main(String[] args) throws Exception {
    String trueValue = Boolean.TRUE.toString();
    String fieldValue = null;
    Boolean defaultValue = null;

    Boolean value = (fieldValue != null ? trueValue.equalsIgnoreCase(fieldValue) : defaultValue);

    System.out.println(value);
}
Run Code Online (Sandbox Code Playgroud)

defaultValue不等于null代码工作正常,但如果defaultValuenull在JVM抛出一个NullPointerException.此代码使用jdk 1.6.45编译.

为什么我得到这个例外?

java ternary-operator nullpointerexception

11
推荐指数
3
解决办法
1592
查看次数