Ist es wichtig, autoCloseable in Java zu implementieren?
Es ist schwer zu sagen, ob es wichtig ist oder nicht, die Schnittstelle zu implementieren. Aber es ist nicht erforderlich.
Wäre es sinnvoll, wenn ich eine Klasse erstellen, die AutoCloseable implementieren erweitert eine andere Klasse, die es nicht implementiert?
Es ist OK, das zu tun. Nichts Falsches.
AutoCloseable wurde von Java 7 hinzugefügt.Es wurde für die Verwendung mit neuen try-with-resources-Anweisungen (Java 7+) entwickelt.
Siehe die beiden folgenden Klassen mit derselben Funktionalität. Einer verwendet nicht AutoCloseable und der andere verwendet AutoClosable:
Wie Sie sehen. Mit AutoClosble wird der Code kürzer und sauberer.
Dies ist im Grunde kein Problem. Wie verwenden Sie diesen Code konkret? –
Der größte Vorteil, den ich mir vorstellen kann, ist die Möglichkeit, einen 'finally'-Block in einem try-catch zu vermeiden, indem man einen try-with-resources benutzt, der nur mit' AutoCloseables' arbeitet. Also, wenn Sie eine Klasse erstellen, die eine Methode zum Schließen hat, würde ich 'AutoCloseable' implementieren, selbst wenn die Oberklasse nicht geschlossen werden kann. – BackSlash
Da 'Closeable'' AutoCloseable' erweitert, ist der einzige Grund, 'AutoCloseable' gegenüber' Closeable' zu bevorzugen, wenn die close-Methode eine andere überprüfte Ausnahme als 'IOException' auslösen muss. – dnault