У меня есть объект с определенным состоянием. Объект передается вокруг, и его состояние временно изменяется. Что-то вроде:
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()
, ни о "уничтожении" (сборке мусора), я интересуюсь областью применения.
Спасибо