if(null)语句在Java中返回什么?



我有一个method有一个Boolean parameter,如:

public void method(Boolean parameter){
...
}

我可以只用if(parameter)来确定逻辑吗?如果parameternull呢?

编译器会把你的

if (parameter)

if (parameter.booleanValue())
通过auto-unboxing

。因此,这应该告诉您null (NullPointerException,就像您在null上调用任何其他方法一样)将发生什么。

如果您尝试了,您将看到一个NullPointerException

但是Boolean.equals(Object) Javadoc确实开始

返回true当且仅当参数不是null 并且是一个布尔对象,表示与此对象相同的布尔值。

(我强调)

所以你可以写

if (Boolean.TRUE.equals(parameter)) {
    System.out.println("true");
} else {
    System.out.println("false");
}

我相信可以处理你的null情况

将数据类型从Boolean更改为booleanboolean是原始数据类型,不能为null

最新更新