Java, executando um método quando o escopo do objeto termina
Eu tenho um objeto com um certo estado. O objeto é passado e seu estado é temporariamente alterado. Algo como:
public void doSomething(MyObject obj) {
obj.saveState();
obj.changeState(...);
obj.use();
obj.loadState();
}
No C ++, é possível usar o escopo de um objeto para executar algum código durante a construção e a distração, como
NeatManager(MyObject obj) { obj.saveState(); }
~NeatManager() { obj.loadState(); }
e chame assim
void doSomething(MyObject obj) {
NeatManager mng(obj);
obj.changeState();
obj.use();
}
Isso simplifica o trabalho, porque o salvar / carregar está vinculado ao escopo deNeatManager
objeto. É possível fazer algo assim em Java? Existe uma maneira de chamar um método quando o objeto sai do escopo em que foi declarado? Eu não estou falando sobrefinalize()
nem "destruição" (coleta de lixo), estou interessado no escopo.
obrigado