质量推广提醒 - JDK 25:‘new File(“”)’的一致行为

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

OpenJDK质量小组正在推广使用OpenJDK构建测试FOSS项目,以提高发布质量。JDK 24及之前版本中,new File("")的行为不一致,导致文件存在性检查出错。JDK 25修复了这一问题,确保new File("")正确表示当前用户目录。建议进行测试以确保与JDK 25的兼容性。

🎯

关键要点

  • OpenJDK质量小组正在推广使用OpenJDK构建测试FOSS项目,以提高发布质量。
  • JDK 24及之前版本中,new File("")的行为不一致,导致文件存在性检查出错。
  • JDK 25修复了这一问题,确保new File("")正确表示当前用户目录。
  • 新API java.nio.file避免了这一问题,Path.of("")和Path.of("").toAbsolutePath()都表示当前用户目录。
  • JDK 25的Javadoc更新了File的行为说明,空抽象路径名等同于访问当前用户目录。
  • 依赖旧行为的代码常见于单元测试或用户输入映射,可能导致文件相关参数或配置的错误行为。
  • 修复此类代码相对简单,但识别可能较难,建议使用全面的测试套件。
  • 对于依赖和工具,建议依赖其测试和关于JDK 25兼容性的声明。

延伸问答

JDK 25修复了什么问题?

JDK 25修复了new File("")行为不一致的问题,使其正确表示当前用户目录。

为什么在JDK 24及之前版本中,new File("")的行为不一致?

在JDK 24及之前版本中,new File("")的行为导致文件存在性检查出错,返回的结果与实际情况不符。

如何确保代码与JDK 25的兼容性?

建议使用全面的测试套件来识别依赖旧行为的代码,并依赖工具和库的测试声明。

新API java.nio.file如何处理空路径名?

新API java.nio.file中的Path.of("")和Path.of("").toAbsolutePath()都表示当前用户目录,避免了旧API的问题。

JDK 25的Javadoc更新了哪些内容?

JDK 25的Javadoc更新了File的行为说明,明确空抽象路径名等同于访问当前用户目录。

依赖旧行为的代码常见于哪些场景?

依赖旧行为的代码常见于单元测试或用户输入映射,可能导致文件相关参数或配置的错误行为。

➡️

继续阅读