如何在map中处理null值

时间:2015-03-30 19:28:46

标签: java hashmap

我在打印选定的地图值时遇到NullPointerException问题。如果 selectedCert 列表包含(AABBCC),则会打印地图:

  

EN
  EN
  EN

但是,如果 selectedCert 列表中只包含2个(AABB),则会出现空指针异常,因为< strong> ccLang 为空。

剪切代码:

   private String ccLang;//Setter and Getter    
   Map<String, String> Cert = new HashMap<String,String>(ss.size());

   Cert.put("AA", "EN");    
   Cert.put("BB", "EN");    
   Cert.put("CC", ccLang);   

   for(String key: selectedCert)    
      System.out.println(Cert.get(key));    
   System.out.println();

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

如果您的值可以为null,只需添加一个空检查:

if(value != null) {
    map.put(key, value);
}

您可以使用它的方法:

private static void putNonNull(String key, String value, 
                               Map<String, String> map) {
    if(value != null) {
        map.put(key, value);
    }
}

putNonNull("AA", "EN", Cert);
putNonNull("BB", "EN", Cert);
putNonNull("CC", ccLang, Cert);

答案 1 :(得分:0)

我编辑了一下代码,看看这是不是你在说什么,但这会很好用:

    String ccLang = null;//Setter and Getter

    Map<String, String> Cert = new HashMap<String,String>(10);

    Cert.put("AA", "EN");

    Cert.put("BB", "EN");

    Cert.put("CC", ccLang);

    for (Entry<String, String> entry : Cert.entrySet()) {
        System.out.println(entry.getKey());
        System.out.println(entry.getValue());
    }