为什么java.nio.Paths.get(..)不将java.nio.Path对象作为输入?

时间:2017-07-30 16:19:47

标签: java

我开始使用java.nio.*,现在我想知道:为什么java.nio.Paths.get(..)不会将java.nio.Path个对象作为输入?

现在我总是做这样的事情:

final Path basePath = Paths.get("/some/base/path");
final Path filePath = Paths.get(basePath.toString(), "file.txt");

所以要么我忽略了一些非常基本的东西,要么API设计师完全忘记了这个选项,我强烈怀疑。

1 个答案:

答案 0 :(得分:4)

此类是创建Path对象的工厂方法,其意图在javadoc中明确指出:

  

此类包含完全 返回路径的静态方法   通过转换路径字符串或URI

如果我们已经拥有Path对象

,那么调用此方法的目标是什么

要从基座Path解析资源Path,您无需再次使用Paths课程。
Path方法提供Path上的操作(两个Path之间的比较,Path创建等)。Path解析。

Path resolve(Path other);
  

根据此路径解析给定路径。

或者更简单地说,它会从其中两个创建Path

假设资源位于D:/my-resources/one-resource

Path relativePathResource = Paths.get("one-resource");
Path absolutePathResource = Paths.get("D:/my-resources").resolve(resource);