Path.resolve(其他)java.nio.file.Path方法

时间:2013-09-16 16:15:29

标签: java path nio

直接来自API

  

决心

     

路径解析(路径其他)

     

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

     

如果另一个参数是绝对路径,则此方法通常为    返回其他。如果other是一个空路径,那么这个方法很简单   返回此路径。否则,此方法将此路径视为a   目录并解析此路径的给定路径。在里面   最简单的情况是,给定路径没有根组件,其中   case此方法将给定路径连接到此路径并返回a   生成的路径以给定路径结束。 指定路径的位置    根组件然后解决方案高度依赖于实现    因此未指定。

(强调我的)

这里有一点矛盾,首先他们说:

  1. 如果另一个参数是绝对路径,那么这个方法 平凡地回归其他。

    然后他们说:

  2. 如果给定路径具有根组件,则解决方案高度依赖于实现,因此未指定。

  3. 绝对路径是否必须包含根组件才能成为这样的组件? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

对你的问题的简短回答是否定的,绝对路径不需要有根组件,但是,根据提供者的不同,它可能会。

如果我们查看source code for UnixPath,我们会看到,如果它是一个绝对路径,那么它将返回一个根组件,如果它是一个绝对路径,它将只返回一个根组件。

但是,并不要求以这种方式实施。理论上至少,getRoot()可以返回一些东西,而isAbsolute()则返回false。在此,结果是不确定的。或者,将其放在真值图表中:

Result of resolve() when:
                     getRoot()==null  getRoot()!=null
isAbsolute()==true   defined          defined
isAbsolute()==false  defined          undefined