Как инструмент javac обрабатывает аннотации в исходном коде? Скомпилированы ли они и переведены на bytecode или они будут обрабатываться таким образом, который напоминает обработку строк комментариев ?Как инструмент javac обрабатывает аннотации
ответ
Аннотации обрабатываются компилятором особым образом. Они анализируются, но большинство аннотаций ничего не значит для компилятора. Некоторые из них, например, если вы неправильно используете аннотацию @Override
, произойдет ошибка времени компиляции. Вы можете найти список комментариев к компилятору here.
После этого, поведение зависит от типа аннотаций:
Если аннотация имеет rentention policy набор для RUNTIME
или CLASS
, он фактически будет включен в файле класс. Если политика хранения равна RUNTIME
, аннотация может быть доступна даже во время выполнения через отражение. Многие библиотеки используют это, чтобы обеспечить некоторый дополнительный комфорт, например. JUnit использует @Test
для обозначения методов, которые реализуют модульные тесты и ищет их во время выполнения.
Кроме того, java-компилятор позволяет реализовать так называемые «обработчики аннотации», которые могут получить доступ к AST модуля компиляции и обработать аннотации. Это еще одно доказательство того, что компилятор действительно обрабатывает аннотации.
- 1. Как javac обрабатывает символы Unicode?
- 2. Java-аннотации - ошибка компилятора javac?
- 3. Инструмент аннотации изображений Sequence
- 4. Инструмент аннотации веб-PDF
- 5. Инструмент аннотации исходного кода
- 6. Обработчик аннотации - Как получить класс, который обрабатывает
- 7. javac обработчик аннотации: классы зависимостей обработки
- 8. Полуавтоматический инструмент аннотации - Как найти RDF Triplets
- 9. Каков класс, который обрабатывает аннотации на сохранение?
- 10. Spring Security не обрабатывает аннотации до/после
- 11. инструмент для маркировки и аннотации изображения
- 12. Как Hibernate Search обрабатывает аннотации, унаследованные от суперкласса?
- 13. maven-compiler-plugin не обрабатывает аннотации при указании fork = true?
- 14. Непроверенные предупреждения не удаляются с помощью аннотации Javac @SuppressWarnings
- 15. TfIdfVectorizer: Как векторный инструмент с фиксированным вокалом обрабатывает новые слова?
- 16. Обработчик аннотации обрабатывает только модифицированный класс после первого запуска
- 17. Какой класс андроида обрабатывает аннотации выбора текста в android?
- 18. Как JUnit обрабатывает аннотацию @Before
- 19. Компиляция с Oracle javac vs OpenJDK javac
- 20. Есть ли инструмент для мониторинга и аннотации проверок SVN?
- 21. Инструмент обработки аннотации добавить код в существующий класс
- 22. Ошибка JAVAC - «javac» не распознается как внутренняя или внешняя команда
- 23. Создайте инструмент аннотации изображений с помощью AppleScript и Automator
- 24. Какой лучший инструмент аннотации для семантической сети или онтологий?
- 25. любой инструмент PDF-аннотации в командной строке linux?
- 26. Инструмент обратной обработки HibernateTools не добавляет Аннотации для генератора
- 27. Инструмент для аннотации/обмана с открытым исходным кодом
- 28. Инструмент аннотации для выравнивания кусков пары предложений друг с другом?
- 29. Javac вариант
- 30. javac -Xlint: переопределения не работают
Определите, что вы подразумеваете под «процессом»? Вы говорите о [** компиляции обработки аннотации времени **] (http://hannesdorfmann.com/annotation-processing/annotationprocessing101)? –
Да, я имею в виду компиляцию времени аннотации обработки. –