Soll Closeable als Java-Entsprechung für IDisposable von .NET verwendet werden?

Update: @PaulGroke Punkte unten, die Dinge haben sich geändert bei Java 7: es ist jetzt AutoCloseable. Das ist nicht gebunden an Bächen und unterstützt durch das neue try-mit-Ressourcen konstruieren.

AutoCloseable ist die direkte Java-äquivalent .NET IDisposable - Schnittstelle.


Den Closeable - Schnittstelle eingeführt in Java 1.5 ist eng gebunden an Bächen, und hat sogar eine Ausnahme Planer für IOException. Dies deutet darauf hin, dass es sollte nur verwendet werden, für streams oder andere IO-Aktivitäten, sondern als Allzweck-cleanup-Logik.

Sicherlich die Beschreibung für die close() Methode würde absolut keinen Sinn außerhalb eines stream/IO-Kontext:

void close() throws IOException

Schließt das stream und releases alle system-Ressourcen zugeordnet.

Sollte ich erklären daher meine eigene Schnittstelle Disposable mit Dispose() - Methode auf, und verwenden, die als ein Analogon zu .NET IDisposable - Schnittstelle? Oder sollte ich re-verwenden Closeable auch wenn es vielleicht nicht eine perfekte Passform?

InformationsquelleAutor der Frage Daniel Fortunov | 2009-07-22

Schreibe einen Kommentar