我开始使用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设计师完全忘记了这个选项,我强烈怀疑。
答案 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);