在地图空检查获得空指针异常(Null check in map gets null pointer

2019-10-21 04:31发布

我试图使用Java HashMap 。 使用map.get("A")以获得一个关键的值从地图上导致了NullPointerException 。 然后我用if(map.get("A"))以避免NullPointerException被抛出,但这样做的反正抛出。

我究竟做错了什么?

Answer 1:

我已经回答我的问题。 我已经使用检查

         if(map.containsKey("A"))
                 String b =  map.get("A")

而不是

    if(map.get("A") != null)
            map.get("A")

这会帮助我避免空指针异常



Answer 2:

嗯,你可能没有实例化map对象本身。

访问前,试试这个map

Map map = new HashMap();

然后:

map.put("A", "someValue");
if(map.get("A") != null){/*your code here*/}


Answer 3:

有两个可能的问题:

  1. map本身是null ,因为你从来没有初始化它。

  2. map被声明为Map<String, Boolean> map 。 如果是这种情况,那么你if语句不会做你认为它。 它实际上得到的Boolean从地图对象,并尝试将其拆箱到原始的bool 。 如果没有与该键的值"A" ,那么你会得到一个NullPointerException 。 解决这个问题的办法是改变你if语句:

     Boolean b = map.get("A"); if (b != null && b) ... 

    请注意,你必须明确地与比较null



Answer 4:

首先,检查地图是否为空或不

map != null

然后检查地图包含关键的,

map.containsKey("A")

完全可以检查如下,

if(map!=null && map.containsKey("A")){
   if(map.get("A") != null){
       System.out.println(map.get("A"));
       \\ value corresponding to key A
   }
} 


文章来源: Null check in map gets null pointer exception