当我运行此代码时,tmp不为null,可以打印模型的信息
但是当我把它推入linkedStack时,它会告诉我NullpointerException
private LinkedStack<GameModel> modelStack;
protected GameModel clone() {
try{
GameModel tmp;
tmp= (GameModel)super.clone();
// tmp.dotSet=dotSet;
// tmp.numberOfSteps=numberOfSteps;
//tmp.numberOfSteps=numberOfSteps.clone();
System.out.println(tmp);
return tmp;
}catch (CloneNotSupportedException e){
throw new AssertionError();
}
}
private void createModelStack(GameModel model){
GameModel tmp;
tmp=model.clone();
System.out.println(tmp);
System.out.println(tmp==null);
modelStack.push(tmp);
}
答案 0 :(得分:0)
private LinkedStack<GameModel> modelStack
未初始化modelStack。这是什么&null;而不是tmp。
请确保您实例化它:
private LinkedStack<GameModel> modelStack = new LinkedStack<>();
或者如果你想要,你可以在createModelStack
创建它,这可能更有意义
另一件事是,我不熟悉LinkedStack
,它似乎不是一个java实现。你自己实现了吗?也可能会从那里抛出一个错误(如果在实际代码中你实例化了modelStack并忘了在这里包含它)