使用Java注解处理器添加注解

6

我知道注解处理器通常用于消费注解并对其做出反应。然而,我有一个使用案例,其中这种“反应”涉及添加其他注解。这是否可以在处理器本身内完成?如果可以,如何实现?

1个回答

2
简短回答是是的,你不需要做任何特定的事情。
注解处理器用于创建新的源文件,而不是修改现有的源文件。所以当你说“添加其他注解”时,我想你的意思是“创建包含注解的新类”。
注解处理是按轮进行的。在每一轮中,都会调用您的注解处理器的process方法。
如果处理器生成了新的源文件,则会启动另一轮注解处理:
  • 新生成的源文件将被解析,并像以前一样处理注解
  • 在所有后续轮次中也会调用之前轮次上调用的处理器
所以基本上:你不需要做任何事情,它已经可以工作了;-)。

到目前为止,谢谢你的帮助。但实际上我希望有一种方法可以修改现有的源文件,在那里添加新的注释。这也可能吗? - Eric
不,不能使用注解处理。注解处理只能用于创建新文件。 - Pierre-Yves Ricau
1
然而,您可以修改字节码以添加注释(例如,请参见ASM),或者通过反射在运行时添加这些注释(请参见AnnotationInjector)。 - Pierre-Yves Ricau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接