Я работал с обработкой аннотаций на уровне 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
во время выполнения? Если да, как мне получить его экземпляр? Если нет, есть ли время выполнения, эквивалентное этому? Заранее спасибо.
Использование:
- JDK 11 (openjdk11)
- Maven 3.6.3