JEP 212: Resolve Lint and Doclint Warnings | 解决 Lint 和 Doclint 警告
摘要
JDK 代码库中包含许多由 javac
报告的 lint 和 doclint 错误。至少对于平台的基本部分,应该解决这些警告。
目标
操作上的目标是在使用 javac
的 lint 和 doclint 警告时,至少使平台的基本包(在 core-libs、awt-dev、swing-dev、2d-dev 等讨论的包)编译不会出错。希望其他包,例如 JAXP、JAX-WS 和 CORBA 组成的包也能在启用所有警告的情况下顺利编译。
成功指标
使用 javac
命令的 -Xlint:all
选项编译所涉及源代码的成功构建。可能可以接受一个稍微较弱的目标,即启用所有与源代码相关的 lint 选项,但不启用与非源代码属性相关的 lint 选项。例如,某些 lint 选项涉及 javac 命令行的属性而不涉及正在编译的源代码。
描述
该 JEP 提议完成在 JDK 8 和 JDK 9 中已经进行的修复警告工作,以及正式化先前在 jdk9-dev 中提出的源代码改进的子集。大部分警告是通过修改方法体内部来解决的。解决一些原始类型警告涉及更改方法签名,比如将参数类型从原始的java.lang.Class
更改为java.lang.Class<?>
或某个更具体的类型。任何 API 更改都将遵循 JDK 的一般演进策略。
测试
对大多数更改来说,成功的编译/构建是主要测试,但现有的回归测试仍应通过。如果一个 Java SE API 有签名变化,相应的 JCK 签名测试将需要相应更新。
依赖
解决 JDK 中的弃用警告将会更加容易,如果导入已弃用类型不会触发弃用警告的话。