En una biblioteca en Java 7, tengo una clase que proporciona servicios a otras clases. Después de crear una instancia de esta clase de servicio, se puede llamar a un método varias veces (llamémoslo doWork()método). Entonces no sé cuándo se completa el trabajo de la clase de servicio.
El problema es que la clase de servicio usa objetos pesados y debería liberarlos. Configuré esta parte en un método (llamémoslo release()), pero no está garantizado que otros desarrolladores utilicen este método.
¿Hay alguna manera de obligar a otros desarrolladores a llamar a este método después de completar la tarea de clase de servicio? Por supuesto que puedo documentar eso, pero quiero forzarlos.
Nota: No puedo llamar al release()método en el doWork()método, porque doWork() necesita esos objetos cuando se llama a continuación.
AutoCloseablefue hecho para este propósito exacto.