💡
原文英文,约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的默认注解处理政策对开发者有什么影响?
开发者必须提供至少一个注解处理命令行选项,否则编译将无法进行。
➡️