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

Rol*_*all 5 java nio path

直接来自此API:

解决

路径解析(路径其他)

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

如果另一个参数是绝对路径,则此方法通常会 返回其他参数.如果other是空路径,则此方法通常会返回此路径.否则,此方法将此路径视为目录,并针对此路径解析给定路径.在最简单的情况下,给定路径没有根组件,在这种情况下,此方法将给定路径连接到此路径,并返回以给定路径结束的结果路径.在给定路径具有 根组件的情况下,解决方案高度依赖于实现 ,因此未指定.

(强调我的)

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

  1. 如果另一个参数是绝对路径,则此方法通常会返回其他参数.

    然后他们说:

  2. 在给定路径具有根组件的情况下,解决方案高度依赖于实现,因此未指定.

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

Pau*_*and 3

您的问题的简短答案是否定的,绝对路径不需要有根组件,但是,根据提供程序,它可能有。

如果我们查看UnixPath 的源代码,我们会发现,确实,如果它是绝对路径,那么它将返回根组件,并且只有当它是绝对路径时才会返回根组件。

然而,不要求以这种方式实施。至少从理论上来说,getRoot() 有可能返回某些内容,而 isAbsolute() 有可能返回 false。在此情况下,结果是不确定的。或者,以真值图的形式表示:

Result of resolve() when:
                     getRoot()==null  getRoot()!=null
isAbsolute()==true   defined          defined
isAbsolute()==false  defined          undefined
Run Code Online (Sandbox Code Playgroud)