Tengo un objeto con un cierto estado. El objeto se pasa y su estado se altera temporalmente. Algo así como:Java, la ejecución de un método cuando el alcance del objeto finaliza
public void doSomething(MyObject obj) {
obj.saveState();
obj.changeState(...);
obj.use();
obj.loadState();
}
En C++ es posible utilizar el alcance de un objeto para ejecutar código cuando la construcción y distructing, como
NeatManager(MyObject obj) { obj.saveState(); }
~NeatManager() { obj.loadState(); }
y llamarlo como
void doSomething(MyObject obj) {
NeatManager mng(obj);
obj.changeState();
obj.use();
}
Este simplifica el trabajo, porque el guardar/cargar está enlazado con el alcance del objeto NeatManager
. ¿Es posible hacer algo como esto en Java? ¿Hay alguna manera de llamar a un método cuando el objeto sale del ámbito en el que se ha declarado? No estoy hablando de finalize()
ni de "destrucción" (recolección de basura), estoy interesado en el alcance.
Gracias
Gracias, interesante escuchar acerca de esto en Java7. – AkiRoss