У меня есть объект с определенным состоянием. Объект передается, и его состояние временно изменено. Что-то вроде:
public void doSomething(MyObject obj) {
obj.saveState();
obj.changeState(...);
obj.use();
obj.loadState();
}
В С++ можно использовать область действия объекта для запуска некоторого кода при построении и расстройстве, например
NeatManager(MyObject obj) { obj.saveState(); }
~NeatManager() { obj.loadState(); }
и назовите его как
void doSomething(MyObject obj) {
NeatManager mng(obj);
obj.changeState();
obj.use();
}
Это упрощает работу, потому что сохранение/загрузка привязана к области NeatManager
. Можно ли сделать что-то подобное на Java? Есть ли способ вызвать метод, когда объект выходит за пределы области, в которой он был объявлен? Я не говорю о finalize()
и "уничтожении" (сборке мусора), меня интересует область.
Спасибо