质量推广预告 - JDK 20:弃用 URL 公共构造函数
David Delabassee 发表于 2023 年 2 月 15 日
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。