我的 DFA 中的状态的 NullPointerException?
NullPointerException for my States in my DFA?
我不明白为什么我的代码中出现 NullPointerException。
我正在尝试为 DFA 编写模拟器,并且我已经创建了一个节点类型 class 来保存我的状态,如下所示,
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);
}
}
我已经试过了,主要是我开车class
因此,
//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)
您必须初始化 Map
:
Map<String,State> nextStates;
你在哪里做的?像这样:
Map<String,State> nextStates = new HasMap <>();
这就是 NullPointerException 的原因。
我不明白为什么我的代码中出现 NullPointerException。 我正在尝试为 DFA 编写模拟器,并且我已经创建了一个节点类型 class 来保存我的状态,如下所示,
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);
}
}
我已经试过了,主要是我开车class 因此,
//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)
您必须初始化 Map
:
Map<String,State> nextStates;
你在哪里做的?像这样:
Map<String,State> nextStates = new HasMap <>();
这就是 NullPointerException 的原因。