Em uma biblioteca em Java 7, tenho uma classe que fornece serviços para outras classes. Após criar uma instância dessa classe de serviço, um método pode ser chamado várias vezes (vamos chamá-lo de doWork()
método). Portanto, não sei quando o trabalho da classe de serviço está concluído.
O problema é que a classe de serviço usa objetos pesados e deve liberá-los. Defino essa parte em um método (vamos chamá-lo release()
), mas não é garantido que outros desenvolvedores usem esse método.
Existe uma maneira de forçar outros desenvolvedores a chamar esse método depois de concluir a tarefa da classe de serviço? Claro que posso documentar isso, mas quero forçá-los.
Nota: Não posso chamar o release()
método no doWork()
método, porque doWork()
precisa desses objetos quando for chamado a seguir.
AutoCloseable
foi feito para esse propósito exato.