gpt4 book ai didi

java - 为什么 Path.relativize 在 Java 8 和 Java 11 上表现不同?

转载 作者:行者123 更新时间:2023-12-04 16:26:06 25 4
gpt4 key购买 nike

为什么方法relativize 上的行为有所不同和 ?

Path path1 = Paths.get("/a/./b/../image.png");
Path path2 = Paths.get("/a/file.txt");
Path path = path1.relativize(path2);
System.out.println(path);
  • (准确地说是 1.8.0_66)打印 ../../../../file.txt . JavaDoc .
  • (准确地说是 11.0.4)打印 ../file.txt . JavaDoc .

  • 两个版本的 JavaDoc 描述是相同的。我觉得 方式对我来说似乎是正确的行为:
  • path1 :/a/./b/../image.png归一化为 /a/b/../image.png归一化为 /a/image.png
  • path2 :/a/file.txt
  • /a/image.png导航的方式和 /a/file.txt../file.txt

  • 问题
  • 怎么样了应该计算的方式?它不会使路径正常化吗?我不明白如何从头部获得结果。
  • 为什么这两个版本之间存在根本没有记录的差异?
  • 最佳答案

    也许这个错误会回答你的问题:
    https://bugs.openjdk.java.net/browse/JDK-8066943
    这影响了包含 .或 .. 并针对 Java 9 进行了修复。
    所以这就是为什么你会看到 8 和 11 之间的差异。

    关于java - 为什么 Path.relativize 在 Java 8 和 Java 11 上表现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63872767/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com