Ho un oggetto con un determinato stato. L'oggetto viene passato in giro e lo stato è temporaneamente alterato. Qualcosa di simile:Java, esecuzione di un metodo quando termina l'ambito dell'oggetto
public void doSomething(MyObject obj) {
obj.saveState();
obj.changeState(...);
obj.use();
obj.loadState();
}
In C++ è possibile utilizzare il campo di applicazione di un oggetto per eseguire del codice quando si costruisce e distructing, come
NeatManager(MyObject obj) { obj.saveState(); }
~NeatManager() { obj.loadState(); }
e chiamarlo come
void doSomething(MyObject obj) {
NeatManager mng(obj);
obj.changeState();
obj.use();
}
Questo semplifica il lavoro, perché il salvataggio/carico è vincolato con l'ambito dell'oggetto NeatManager
. È possibile fare qualcosa di simile in Java? C'è un modo per chiamare un metodo quando l'oggetto esce dall'ambito in cui è stato dichiarato? Non sto parlando di finalize()
né di "distruzione" (garbage collection), mi interessa l'ambito.
Grazie
Grazie, interessante sentire su questo in Java7. – AkiRoss