In einer Bibliothek in Java 7 habe ich eine Klasse, die Dienste für andere Klassen bereitstellt. Nach dem Erstellen einer Instanz dieser Serviceklasse kann eine Methode davon mehrmals aufgerufen werden (nennen wir sie die doWork()
Methode). Ich weiß also nicht, wann die Arbeit der Serviceklasse abgeschlossen ist.
Das Problem ist, dass die Serviceklasse schwere Objekte verwendet und diese freigeben sollte. Ich habe diesen Teil in einer Methode festgelegt (nennen wir es release()
), aber es ist nicht garantiert, dass andere Entwickler diese Methode verwenden.
Gibt es eine Möglichkeit, andere Entwickler zu zwingen, diese Methode aufzurufen, nachdem die Aufgabe der Serviceklasse abgeschlossen wurde? Natürlich kann ich das dokumentieren, aber ich möchte sie zwingen.
Hinweis: Ich kann die release()
Methode in der doWork()
Methode nicht aufrufen , da doWork()
diese Objekte beim nächsten Aufruf benötigt werden.
AutoCloseable
wurde für genau diesen Zweck gemacht.