Skip to content

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 中的弃用警告将会更加容易,如果导入已弃用类型不会触发弃用警告的话。