我的代码类似于以下内容:

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/

10-14 12:25