我的DFA中的状态是否为NullPointerException?

时间:2017-06-09 03:39:00

标签: java nullpointerexception dfa

我无法弄清楚为什么我的代码中出现NullPointerException。 我正在尝试为DFA编写模拟器,我已经创建了一个Node类型类来保存我的状态,如下所示,

import java.util.Map;


class State{
        //fields
        Map<String,State> nextStates;

        public State passChar(String putIn){
            if(!nextStates.containsKey(putIn)){
                return null; 
            }
            return nextStates.get(putIn);
        }

        /**
         * Add a state that this state connects to.
         * @param sta the state that this state connects to when
         * a letter in the alphabet is passed to it.
         * @param pass the letter that is passed to it.
         */
        public void addNextState(String pass,State sta){
            nextStates.put(pass,sta);
        }
    }

我试过我的主要是在我的驾驶课上 就是这样,

//Setting up my Q
        State q1 = new State();
        State q2 = new State();
        q1.addNextState("1", q1); //this is where my exception is thrown.
        q1.addNextState("0", q2);

Exception in thread "main" java.lang.NullPointerException
    at State.addNextState(State.java:25)
    at DFA.main(DFA.java:100)

1 个答案:

答案 0 :(得分:0)

您必须初始化Map

Map<String,State> nextStates;
你在做什么?像这样:

Map<String,State> nextStates = new HasMap <>();

这就是Nul​​lPointerException的原因。