【发布时间】:2017-04-03 19:13:43
【问题描述】:
我想将对象存储在对象中,想法是保存它的每个先前条件,以便我可以实现撤消选项。我知道这个问题可以通过列表来解决,但我对这个特殊的解决方案很感兴趣。
我有课:
public class Condition {
private String name;
private Condition last_condition;
public Condition(String name){
this.name = name;
}
public void changeName(String name){
if(last_condition == null){
last_condition = new Condition(this.name);
this.name = name;
return;
}
while(last_condition != null){
last_condition = last_condition.last_condition;
}
last_condition = new Condition(this.name);
his.name = name;
}
}
我认为问题出在这部分:
last_condition = last_condition.last_condition;
但我不完全明白为什么。我认为这取决于将空指针保存在变量中。由于有人来自 C,这看起来很自然。这只是类的简单表示,我也尝试了一些临时变量,但结果是一样的。
编辑: 例如,当我调用此方法 4 次时,它并没有保存所有 4 个更改。所以没有编译错误,只是不能正常工作。
欢迎任何帮助!
【问题讨论】:
-
究竟是什么错误?
-
这是一个 UI 程序吗?还是为了什么?也许您可以使用 API,例如:docs.oracle.com/javase/7/docs/api/javax/swing/undo/…
-
你遇到了什么错误?
-
对不起,这不是错误,但是当我调用此方法例如 4 次时,它并没有保存所有 4 个更改。
-
你是如何使用你的方法的?