【发布时间】:2021-06-23 13:06:19
【问题描述】:
我想编写简单的自定义验证注释,但找不到关于我知道的两种处理它们的方法之间差异的正确信息,它们是:
- 反射 API
- 自定义处理器扩展
javax.annotation.processing.AbstractProcessor
请有人告诉我这些选项之间的区别以及哪种方案更好,任何帮助将不胜感激
【问题讨论】:
标签: java reflection annotations
我想编写简单的自定义验证注释,但找不到关于我知道的两种处理它们的方法之间差异的正确信息,它们是:
javax.annotation.processing.AbstractProcessor
请有人告诉我这些选项之间的区别以及哪种方案更好,任何帮助将不胜感激
【问题讨论】:
标签: java reflection annotations
当您编译代码时,注释处理器会运行。在编译时,它可以发出警告、生成新代码或修改现有代码。 (修改现有代码是不受欢迎的,但 Lombok 等一些处理器会这样做。)
在您的代码运行时访问反射 API。您的代码可以根据通过反射 API 读取的注释来更改其行为。
这解释了主要区别。不同的场景太多,无法一一列举,但对于任何给定的场景,您都可以根据差异确定优缺点。
【讨论】: