Java 如果为空,则检查布尔值
我有上面的表达式,我想检查Java 如果为空,则检查布尔值,java,nullpointerexception,Java,Nullpointerexception,我有上面的表达式,我想检查Boolean值是否为null,以及它是否为if子句中的execute语句,但实际情况是它抛出了一个NullPointerException。我应该怎么做才能用给定的条件对if子句求值valid==null。 提前感谢当然,您的日志对象包含空引用。不能使用空引用调用任何方法。试试这个: Boolean valid = null; if (valid == null) { log.info("******"); } 您应该做的第一件事是问问自己为什么要使用布尔对
Boolean
值是否为null
,以及它是否为if子句中的execute语句,但实际情况是它抛出了一个NullPointerException
。我应该怎么做才能用给定的条件对if子句求值valid==null
。
提前感谢当然,您的日志对象包含空引用。不能使用空引用调用任何方法。试试这个:
Boolean valid = null;
if (valid == null) {
log.info("******");
}
您应该做的第一件事是问问自己为什么要使用
布尔对象并将其赋值为null。除此之外,您的代码可以正常工作。可能log
是一个空引用,您不能对其调用方法。此代码不会引发NullPointerException(除非log
是null
),可能是您的“log”对象未实例化。实际上,它不会引发NullPointerException。不过,如果您解除布尔值的绑定,或者尝试if(valid)
谢谢大家,这将发生。我忘记了在表达式“valid==null”之前,我首先检查了它的“!valid”,因此我得到了NPE,因为第一个表达式的计算结果是它是否包含false值。
Boolean valid = null;
if(valid == null) {
System.out.println("Hello");
}