Java, ejecutando un método cuando finaliza el alcance del objeto.
Tengo un objeto con cierto estado. El objeto se pasa y su estado se altera temporalmente. Algo como:
public void doSomething(MyObject obj) {
obj.saveState();
obj.changeState(...);
obj.use();
obj.loadState();
}
En C ++ es posible usar el alcance de un objeto para ejecutar algún código al construir y distraer, como
NeatManager(MyObject obj) { obj.saveState(); }
~NeatManager() { obj.loadState(); }
y llámalo como
void doSomething(MyObject obj) {
NeatManager mng(obj);
obj.changeState();
obj.use();
}
Esto simplifica el trabajo, ya que guardar / cargar está vinculado con el alcance deNeatManager
objeto. ¿Es posible hacer algo como esto en Java? ¿Hay una manera de llamar a un método cuando el objeto sale del ámbito en el que se ha declarado? No estoy hablando definalize()
ni "destrucción" (recolección de basura), estoy interesado en el alcance.
Gracias