将对象重置为初始状态

时间:2013-04-10 18:05:58

标签: java class object

java中有没有办法将对象重置为初始状态。我正在演示搜索,但是,当我到达节点时,将值更改为

current.visited = true;

然后下一个搜索运行现在必须等于

current.visited = false;

除了错误的逻辑外,这是可行的。

理想情况下,构造代码如下所示:

        System.out.printf ("Breadth first search...\n\n");
    breadthFirstSearchMap (Romania);

 RESET Objects here...
    System.out.printf ("Depth first search...\n\n");
    depthFirstSearchMap (Romania);

 and again  here...

    System.out.printf ("Depth limited search...\n\n");      
     depthLimitedSearchMap (Romania); 

4 个答案:

答案 0 :(得分:1)

public interface Resetable {

    public void reset();
}

class Foo implements Resetable {
   ...
}

答案 1 :(得分:0)

ClassObject depthFirstSearchMap;
public void blabla(){
depthFirstSearchMap = new ClassObject(Romaina);
 System.out.printf ("Breadth first search...\n\n");
breadthFirstSearchMap (Romania);
depthFirstSearchMap = new ClassObject(Romaina);
System.out.printf ("Depth first search...\n\n");
depthFirstSearchMap (Romania);
depthFirstSearchMap = new ClassObject(Romaina);
System.out.printf ("Depth limited search...\n\n");      
 depthLimitedSearchMap (Romania); 
}

答案 2 :(得分:0)

你应该看一下memento设计模式,尽管如果imho最简单的方法是将访问过的标志存储为被访问节点id的java.util.Set(在任何Set实现中包含操作成本1)你开始每次搜索。

否则Memento模式Wiki dexcription是:

“memento模式是一种软件设计模式,可以将对象恢复到以前的状态”

答案 3 :(得分:0)

我会使用自己的reset()方法。这很简单。