Описание тега annotation-processing
Обработчик аннотаций - это плагин для компилятора Java. Обработчик аннотаций может делать такие вещи, как анализировать объявления, вызывать ошибки компиляции и создавать новые единицы компиляции.
Обработчик аннотаций - это плагин для компилятора Java.
Обработчик аннотаций - это экземпляр javax.annotation.processing.Processor
чья process
метод вызывается во время компиляции.
После вызова процессор может выполнять такие действия, как:
- Анализируйте части абстрактного синтаксического дерева, в первую очередь объявления через
javax.lang.model.element
и типы черезjavax.lang.model.type
. - Вызывать ошибки компиляции и предупреждения (аналогично тому, как
@Override
аннотация работает) черезMessager
. - Создавать новые единицы компиляции (т.е. файлы исходного кода) через
Filer
которые впоследствии компилируются.
Примечания о текущих ограничениях обработчиков аннотаций
- Обработчики аннотаций могут только создавать новые единицы компиляции, но не изменять существующие единицы компиляции. Некоторые обработчики аннотаций, такие как Project Lombok, достигают последнего с помощью недокументированного внутреннего Javac API.
- Существующий API в Java Platform SE ограничен только анализом объявлений, таких как объявления классов и объявления методов. Существует API-интерфейс Compiler Tree, который позволяет анализировать полное абстрактное синтаксическое дерево, но он в значительной степени недокументирован и еще не является частью SE.
Ресурсы