质量推广提醒 - JDK 23:默认注解处理政策的变化

质量推广提醒 - JDK 23:默认注解处理政策的变化

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

JDK 23改变了默认的注解处理政策,javac现在需要额外的命令行选项来启用注解处理,包括无处理、仅处理和完整处理。Oracle和OpenJDK的多个版本已支持完整处理,以帮助项目顺利迁移。

🎯

关键要点

  • JDK 23改变了默认的注解处理政策,javac现在需要额外的命令行选项来启用注解处理。
  • 新的选项 -proc 现在可以有三个值:none(无处理)、only(仅处理)和full(完整处理)。
  • 在JDK 23中,默认情况下是 -proc:none,必须提供至少一个注解处理命令行选项。
  • 为了帮助项目迁移到 -proc:full,Oracle和OpenJDK的多个版本已支持该选项。
  • 从JDK 21开始,如果检测到默认政策下隐式使用注解处理,javac会打印信息提示。

延伸问答

JDK 23的默认注解处理政策有什么变化?

JDK 23要求javac使用额外的命令行选项来启用注解处理,默认情况下为 -proc:none。

JDK 23中注解处理的命令行选项有哪些?

新的 -proc 选项可以有三个值:none(无处理)、only(仅处理)和full(完整处理)。

为什么JDK 23改变了注解处理的默认设置?

为了提高构建输出的稳健性,避免意外将注解处理器放在类路径上,JDK 23要求显式启用注解处理。

如何迁移到JDK 23的 -proc:full 选项?

Oracle和OpenJDK的多个版本已支持 -proc:full,以帮助项目顺利迁移。

从JDK 21开始,javac对默认政策下的隐式注解处理有什么提示?

从JDK 21开始,如果检测到隐式使用注解处理,javac会打印信息提示。

JDK 23的默认注解处理政策对开发者有什么影响?

开发者必须提供至少一个注解处理命令行选项,否则编译将无法进行。

➡️

继续阅读