Ich habe in Java 7 XMLStreamReader
als AutoCloseable
erwartet. Das ist jedoch nicht der Fall. Gibt es einen technischen Grund, warum StAX-Leser / Schreiber-Schnittstellen nicht zur Implementierung von AutoCloseable
nachgerüstet wurden (oder nicht) werden sollten? Sie haben bereits nahe Methoden, deren Absicht sich nicht von der nahen Methode von AutoCloseable
unterscheidet.
Wenn Sie sich die close()
näher ansehen, Methode von AutoCloseable
:
Schließt diese Ressource und gibt alle zugrunde liegenden Ressourcen auf. Diese Methode wird automatisch für Objekte aufgerufen, die von der try-with-resources-Anweisung verwaltet werden.
Oder sogar Closeable
close()
Methode :
Schließt diesen Stream und gibt alle damit verbundenen Systemressourcen frei. Wenn der Stream bereits geschlossen ist, hat das Aufrufen dieser Methode keine Auswirkungen.
Während die close()
Methode von XMLStreamReader
sagt:
Gibt alle mit diesem Reader verbundenen Ressourcen frei. Diese Methode schließt die zugrunde liegende Eingabequelle nicht.
Tatsächlich wird die Eingabequelle von der Reader
verwaltet welche die Closeable
Schnittstelle implementieren. Es ist also der Leser, der sich in der try-with-ressource befindet.
Zum Beispiel:
%Vor%Tags und Links java java-7 try-with-resources stax