Abbas A. Ali Ответов: 0

Java annotationprocessing - генерация файлов в каждом раунде vs в последнем раунде


Я играл с обработкой аннотаций и не мог использовать сгенерированные файлы непосредственно через импорт в моем коде. Вместо этого мне пришлось добавить к сгенерированным классам полный пакет. Я (случайно) выяснил причину этого, оказалось довольно просто, ошибка была в том, что я генерировал файлы на последнем раунде AbstractProcessor. Все, что мне нужно было сделать, - это создавать файлы в каждом раунде.

Итак, мои вопросы таковы::

  • Есть ли еще различия в генерации файлов в последнем раунде по сравнению с генерацией файлов перед последним раундом?
  • Есть ли конкретная причина (связанная с Java или нет) для такого поведения?


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

В случае, если это актуально, я работаю над проектом Android в Android Studio и использую JavaPoet для написания классов.

Что я уже пробовал:

Я отвечал так на вопросы:
Первый
ошибка: пакет generated.schema не существует.
Но потом я сам придумал ответ и отправил следующий вопрос
AnnotationProcessing - генерация файлов в каждом раунде против последнего раунда

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

0 Ответов