Как перехватить пользовательскую логику компилятора на основе аннотаций - PullRequest
8 голосов
/ 20 июня 2010

Я хочу определить несколько аннотаций, которые позволят сообщать о дополнительных предупреждениях / ошибках во время компиляции (в принципе аналогично аннотациям @Nullable и @NotNull в IntelliJ ).

Я хотел бы иметь возможность написать несколько хуков компилятора, которые также добавят мою логику компиляции на основе этих атрибутов.

Я хочу универсальный хук, если это возможно, однако, поскольку мы используем Eclipse - это такжевыгода, если бы у нас была такая способность.

Я хотел бы знать:

  1. Возможно ли это?(любой из вышеперечисленных вариантов)
  2. С чего начать?
  3. У меня пока мало опыта с аннотациями, поэтому, если я поступлю неправильно, я бы хотелЗнайте это и, если возможно, найдите лучшее направление.

Спасибо.

1 Ответ

6 голосов
/ 20 июня 2010

Для этого можно использовать процессор аннотаций Java (см. JSR 269: API сменной обработки аннотаций ).Начиная с Проверка аннотаций во время компиляции с помощью Java Annotation Processor :

JSR 269 утверждает, что вы можете реализовать плагин для компилятора, который может обрабатывать аннотации.Этот плагин может быть задан как параметр во время компиляции, поэтому ваш код будет вызываться, когда одна из ваших аннотаций появится в исходном коде.

Упомянутая ссылка предоставляет пример, который поможет вам начать работу.

См. Также:

...