小编典典

检查 null Boolean 是否为真导致异常

all

我有以下代码:

Boolean bool = null;

try 
{
    if (bool)
    {
        //DoSomething
    }                   
} 
catch (Exception e) 
{
    System.out.println(e.getMessage());             
}

为什么我对布尔变量“bool”的检查会导致异常?当它“看到”它不是真的时,它不应该直接跳过 if 语句吗? 当我删除 if
语句或检查它是否为空时,异常消失了。


阅读 67

收藏
2022-06-21

共1个答案

小编典典

当您有 aboolean时,它可以是truefalse。但是,当您拥有 a
Boolean,它可以是Boolean.TRUEBoolean.FALSE也可以是null任何其他对象。

在您的特定情况下,您的Booleanisnullif语句会触发隐式转换,boolean从而产生NullPointerException.
您可能需要:

if(bool != null && bool) { ... }
2022-06-21