我正在研究Java NIO.2及其文件操作,目前正在尝试使用文件树遍历功能和类。
NIO.2的FileVisitor
API非常出色。令人惋惜的是,这种东西只是最近才被添加到Java SE中,而不是十年前。然而,有一件事情让我稍微感到困扰:为什么要使FileVisitor
接口成为通用接口?
互联网上的每一个示例都展示了如何使用Files.walkFileTree()
,这意味着我们使用的是FileVisitor<Path>
类型。但是,我无法看到除了Path
之外的任何其他用途。嗯,也许可以使用FileVisitor
来遍历其他类型的树(内存中的树?),但这感觉就不对了:这个接口和相关的类有非常特定的名称,与文件语义上相关,并且FileVisitor
的方法抛出IOException
异常。
那么,为什么要将FileVisitor
类型参数化呢?
FileVisitor
可能也可用于访问其他文件系统,例如HDFS。 - ValarDohaeris