JAVA Pathクラスresolve()メソッドの挙動について
Q&A
Closed
解決したいこと
Pathクラスのresolveメソッドの挙動についてご教授いただけないでしょうか?
発生している問題
Pathクラスのresolve(Path other)メソッドについてです。
APIでは、
引数に絶対パス(ルートからの階層構造)を渡すと引き数がそのまま返されるとなっています。
以下コードをご参照下さい。
PathオブジェクトのotherPathをisAbsolute()で確認した上で、resolve()に渡しています。
結果は、
otherPathは絶対パス? false
path1.resolve(otherPath)の結果は?C:\playground\test.txt
となりました。
otherPathは絶対パスではないのですが、resolveメソッドの引数に渡すとotherPathがそのまま返ってきます。
この挙動はどういうことなのでしょうか?
サンプルコード
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test {
public static void main(String[] args) {
String source = "C:\\Users\\user\\Desktop";
String other="\\playground\\test.txt";
Path sourcePath= Paths.get(source);
Path otherPath= Paths.get(other);
Path resolvePath=sourcePath.resolve(otherPath);
System.out.println("otherPathは絶対パス? "+otherPath.isAbsolute());
System.out.println("path1.resolve(otherPath)の結果は?"+resolvePath);
}
}
0