质量推广提醒 - 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的行为说明,明确空抽象路径名等同于访问当前用户目录。
依赖旧行为的代码常见于哪些场景?
依赖旧行为的代码常见于单元测试或用户输入映射,可能导致文件相关参数或配置的错误行为。
➡️