null无法自动拆箱为原始
boolean值,当您尝试与进行比较时会发生这种情况
true。在
param == true
类型
true为
boolean,因此左侧操作数也必须为
boolean。您正在传入
Boolean,这是一个对象,但可以自动拆箱到
boolean。
因此,这相当于
param.booleanValue() == true
显然,如果
param是
null,则以上抛出
NullPointerException。
为了避免自动拆箱的隐藏陷阱,您可以改用以下
Boolean对象:
if (Boolean.TRUE.equals(param)) return "a";if (Boolean.FALSE.equals(param)) return "b";return "c";



