我的代码类似于以下内容:
public class A {
private HashMap<Character, Boolean> myMap;
public A() {
myMap = new HashMap<Character, Boolean>();
String mychars = "asdfzxcvqwer";
for (char c : mychars.toCharArray())
myMap.put(c, true);
}
public void doo(String input) {
StringBuilder output = new StringBuilder();
for (char c : input.toCharArray()) {
if (myMap.get(c))
output.append(c);
}
}
//...
//...
}
为什么在
if (myMap.get(c))
行出现空指针异常(NPE)? 最佳答案
如果c
中未包含myMap
,它将返回null
,但无法将其作为boolean
拆箱。
尝试:
Boolean b = myMap.get(c);
if(b != null && b){
...
关于java - Java HashMap get方法空指针异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13687346/