Java:无法检查布尔值是否为null

时间:2017-01-11 21:45:06

标签: java if-statement boolean

如果HashMap为空,我检查.containsKey() 我得到一个空答案。

我的问题是,如果我想检查null,我会收到错误消息

if(containsKey == null || !containsKey){

我收到错误消息

Operator '==' cannot be applied to 'boolean', 'null'

有人能告诉我为什么会这样。我认为这应该有用

4 个答案:

答案 0 :(得分:5)

检查地图是否不是null(而不是HashMap.containsKey(T)返回null,因为它没有 - 它不能 - 它返回一个boolean原语,只能是truefalse)。

if (map != null && map.containsKey(someKey)) {
    // ...
}

答案 1 :(得分:0)

您可以使用HashMap .isEmpty()方法检查您的hashmap是否为空。

答案 2 :(得分:0)

containsKey不能为null,因为它是被调用的方法。尝试检查地图本身是否为空。

答案 3 :(得分:0)

布尔值是基元,并且基元永远不会为空。
只有对象类可以为空。

根据此参数,您可以对对象类 Integer 执行此操作:

Integer myObject = 1;

if (myObject != null){
    ...
}

但是您不能 int 执行此操作,这是一个类似于booleans的原语:

int myPrimitve = 1;

if (myPrimitve == null){
    ...
}

您的IDE将显示错误 Operator ==无法应用于int,null