我有以下代码:
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
为什么检查布尔变量“ bool”会导致异常?当它“看到”这不是事实时,它不应该跳过if语句吗? 当我删除if语句或检查它是否不为null时,该异常消失了。
if (bool == Boolean.TRUE)评估为false而不产生异常。不知道在我刚刚发现的情况下这是否是故意的。
bool则为nullOR 会是错误的。所以不推荐;与之相反,它将按预期工作,包括安全地处理价值。BooleanBoolean.TRUEif (Boolean.TRUE.equals(bool))null