我有一个method
有一个Boolean
parameter
,如:
public void method(Boolean parameter){
...
}
我可以只用if(parameter)
来确定逻辑吗?如果parameter
是null
呢?
编译器会把你的
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
更改为boolean
。boolean
是原始数据类型,不能为null