质量推广预告 - JDK 20:弃用 URL 公共构造函数

OpenJDK 质量小组 正在推广使用 OpenJDK 构建版本测试 FOSS 项目,以此来提高版本的整体质量。此预告是发送给相关项目的定期通讯的一部分。要详细了解该计划以及如何加入,请查看此处

JDK 20 - 弃用 URL 公共构造函数

自 Java SE 1.0 起就存在的 java.net.URL 类不会根据 RFC2396 转义机制对任何 URL 组件进行编码或解码。调用者有责任对任何需要在调用 URL 之前进行转义的字段进行编码,以及对从 URL 返回的任何已转义字段进行解码。这导致了许多可用性问题,包括当调用代码未考虑到这一点时的一些潜在漏洞。

在 Java SE 1.4 中,添加了 java.net.URI 类来缓解 java.net.URL 的一些缺陷。它还提供了从 URI 创建 URL 的方法。

JDK 20 将弃用 java.net.URL 的所有公共构造函数。这将提供一个强烈的警告,并阻止开发人员使用它们。要构造 URL,建议使用 URI::toURL 替代方法。要构造基于 file: 的 URL,应在 URI::toURL 之前使用 Path::toURI

有关更多详细信息,请查看 JDK-8294241

~