Ich mache ein paar Nachforschungen über Java NIO.2 und seine Dateioperationen, und derzeit spiele ich mit Filetree-Walking-Funktionen und -Klassen.Warum ist der NIO.2 FileVisitor-Typ generisch?
NIO.2 FileVisitor
API ist wunderbar, es ist eine Schande, dass solche Dinge erst kürzlich, vor zehn Jahren, in Java SE hinzugefügt wurden. Es gibt jedoch etwas, was mich etwas stört: Was ist der Zweck, FileVisitor
Schnittstelle generisch zu machen?
Jedes Beispiel auf dem Netz zeigt, wie es mit Files.walkFileTree()
zu verwenden, die, dass wir FileVisitor<Path>
Typen verwenden impliziert. Aber ich kann einfach keine Verwendung für diese Schnittstelle für andere Dinge als Path
sehen. Nun, es kannFileVisitor
möglich sein, andere Arten von Bäumen zu gehen (In-Memory-Einsen?), Aber das fühlt sich nicht richtig an: diese Schnittstelle und verwandte Klassen haben sehr spezifische Namen semantisch an Dateien gebunden, und auch FileVisitor
's Methoden werfen IOException
s.
Also, gab es irgendwelche Gründe für die Parametrisierung FileVisitor
Typ?
Speculation: 'FileVisitor' auch verwendbar sein kann, andere Dateisysteme zugreifen, z.B. [HDFS] (http://en.wikipedia.org/wiki/HDFS#Hadoop_Distributed_File_System). – ValarDohaeris