我有一个自定义注解,并想使用注解处理器生成一个列表,列出我的应用程序中所有使用该特定注解的类。
我找到了这个教程,它描述了如何使用注解处理器生成类文件,因此可以很容易地为每个带有我的注解的类生成一个类。
我无法弄清楚如何将所有信息收集到一个单独的类中。似乎没有办法修改类,因此一旦生成了第一次,就无法将新项附加到列表中。
是否有一种方法可以使用注解处理器生成一个方法,该方法将返回应用程序中使用特定注解注释的所有类的列表?
我有一个自定义注解,并想使用注解处理器生成一个列表,列出我的应用程序中所有使用该特定注解的类。
我找到了这个教程,它描述了如何使用注解处理器生成类文件,因此可以很容易地为每个带有我的注解的类生成一个类。
我无法弄清楚如何将所有信息收集到一个单独的类中。似乎没有办法修改类,因此一旦生成了第一次,就无法将新项附加到列表中。
是否有一种方法可以使用注解处理器生成一个方法,该方法将返回应用程序中使用特定注解注释的所有类的列表?
生成的类不一定需要与正在处理的输入类一一对应。此外,您可以通过RoundEnvironment
搜索带有给定注释的类(元素):
roundEnvironment.getElementsAnnotatedWith(MyAnnotation.class)
从这里可以生成一个类,该类具有返回找到的类集合的方法。
需要强调的一些问题:
ErrorType
。RoundEnvironmnet
方法返回,因此不会包括外部库中的类。巧合的是,我最近创建了一个类似的项目,可以实现你想要的功能:
https://github.com/johncarl81/silver
Silver目前还在开发中,并使用了很多库代码来完成任务,但它可能为您提供可行的思路。