如果HashMap为空,我检查.containsKey()
我得到一个空答案。
我的问题是,如果我想检查null,我会收到错误消息
if(containsKey == null || !containsKey){
我收到错误消息
Operator '==' cannot be applied to 'boolean', 'null'
有人能告诉我为什么会这样。我认为这应该有用
答案 0 :(得分:5)
检查地图是否不是null
(而不是HashMap.containsKey(T)
返回null
,因为它没有 - 它不能 - 它返回一个boolean
原语,只能是true
或false
)。
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