Не самый лучший ответ, поскольку я сам этого не делал, но, учитывая, что прошло 3 часа, я сделаю все, что могу.
Обзор обработки аннотаций
Если обработка аннотации не
отключено с помощью опции -proc: none,
компилятор ищет любой
процессоры аннотации, которые
имеется в наличии. Путь поиска может быть
указывается с помощью -processorpath
вариант; если это не дано, пользователь
путь к классу используется. Процессоры
расположен с помощью сервиса
файлы конфигурации провайдера с именем
META-INF / услуги / javax.annotation.processing.Processor
на пути поиска. Такие файлы должны
содержать названия любой аннотации
процессоры, которые будут использоваться, перечислены по одному на
линия. В качестве альтернативы, процессоры могут быть
указано явно, используя
-процессорная опция.
Похоже, вам нужно создать файл с именем javax.annotation.processing.Processor
в папке META-INF/services
, в котором перечислены имена ваших процессоров аннотаций, по одному на строку.
РЕДАКТИРОВАТЬ: Итак, я считаю, что код для чтения аннотаций будет что-то вроде ...
for (Element element : roundEnv.getRootElements()) {
State state = element.getAnnotation(State.class);
if(state != null) {
String stage = state.stage();
System.out.println("The element " + element + " has stage " + stage);
}
}
Реальный пример процессора аннотаций можно найти здесь .