Path.resolve(other)是一个Java NIO文件路径方法。

5
直接从这个API中翻译如下:
解析
Path resolve(Path other)
将给定的路径解析为相对于该路径。
如果other参数是绝对路径,则此方法将简单地返回other。 如果另一个为空路径,则此方法将简单地返回此路径。 否则,此方法将考虑此路径为目录,并将给定路径解析为相对于此路径。 在最简单的情况下,给定的路径没有根组件,在这种情况下,此方法将连接给定路径到此路径并返回以给定路径结尾的结果路径。如果给定路径具有根组件,则解析高度依赖于实现,因此不确定。(强调是我自己加的)
这里有一些矛盾之处,首先他们说:
1.如果other参数是绝对路径,则此方法将简单地返回other。
然后他们说:
2.如果给定路径具有根组件,则解析高度依赖于实现,因此不确定。
难道绝对路径不必包含根组件吗?谢谢。
1个回答

3
你的问题的简短回答是不需要绝对路径具有根组件,但是,根据提供者,可能需要。
如果我们看一下UnixPath源代码, 我们会发现,确实,如果它是一个绝对路径, 那么它将返回一个根组件,并且仅当它是绝对路径时才返回根组件。
然而,没有要求必须以这种方式实现。理论上至少可以使 getRoot() 返回某些内容,并且 isAbsolute() 返回 false。在这种情况下,结果是未定义的。或者用真值图形式表达:
Result of resolve() when:
                     getRoot()==null  getRoot()!=null
isAbsolute()==true   defined          defined
isAbsolute()==false  defined          undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接