我之前使用RetentionPolicy.SOURCE
和javax.annotation.processing.Processor/AbstractProcessor
进行过com.google.auto.service.@AutoService
级别的注释处理,那是我第一次发现非常有用的RoundEnvironment.getElementsAnnotatedWith()
。
现在,在一个完全不相关的项目中,我需要相同的功能,但是需要在运行时。换句话说,我有注释
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Mapper {
Class<?> forUID() default Object.class;
}
并且我想获取每个注有@Mapper
的元素(当然,它只能是构造函数或方法)。我可以在运行时使用RoundEnvironment
吗?如果是,我如何获取它的实例?如果否,那么是否存在等效的运行时?预先感谢。
使用中: