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

questionAnswers(5)

yourAnswerToTheQuestion