【发布时间】:2011-01-08 05:38:21
【问题描述】:
我有一个具有特定状态的对象。对象被传递,它的状态暂时改变。比如:
public void doSomething(MyObject obj) {
obj.saveState();
obj.changeState(...);
obj.use();
obj.loadState();
}
在 C++ 中,可以在构造和解构时使用对象的范围来运行一些代码,例如
NeatManager(MyObject obj) { obj.saveState(); }
~NeatManager() { obj.loadState(); }
然后这样称呼它
void doSomething(MyObject obj) {
NeatManager mng(obj);
obj.changeState();
obj.use();
}
这简化了工作,因为保存/加载与NeatManager 对象的范围绑定。有可能在 Java 中做这样的事情吗?当对象超出其声明的范围时,有没有办法调用方法?我不是在谈论 finalize() 也不是“破坏”(垃圾收集),我对范围很感兴趣。
谢谢
【问题讨论】:
标签: java object scope destructor