最近我正在使用 Java 7 中引入的 java.nio.file 包进行一些编码,并看到了一个使用 Path 的示例,如下所示:
Path path = Paths.get("C:\\Users");
鉴于 Path 是一个接口,我对如何引用它感到困惑,但是经过一些研究,我发现对接口的引用是允许的,但它必须指向实现该接口的类。从这里看,我查看了 Paths 类,发现它没有实现 Path。查看源代码实际方法 Paths.get 方法如下:
public static Path get(String first, String... more) {
return FileSystems.getDefault().getPath(first, more);
}
该方法首先使用我认为称为静态工厂方法的方法返回 FileSystem 类型的对象(我认为来自抽象类),但 FileSystem 也没有实现该接口。
我的问题是有人知道/能够解释 Path 接口的实际实现位置,因为我似乎无法找到发生这种情况的位置。