我无法弄清楚为什么我的代码中出现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)
答案 0 :(得分:0)
您必须初始化Map
:
Map<String,State> nextStates;
你在做什么?像这样:
Map<String,State> nextStates = new HasMap <>();
这就是NullPointerException的原因。