我在打印选定的地图值时遇到NullPointerException
问题。如果 selectedCert 列表包含(AA
,BB
,CC
),则会打印地图:
EN
EN
EN
但是,如果 selectedCert 列表中只包含2个(AA
,BB
),则会出现空指针异常,因为< 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();
如何解决此问题?
答案 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());
}