Настройка аннотаций для RUNTIME Retention By Default (без отдельного @Retention) - PullRequest
0 голосов
/ 21 ноября 2018

Возможно ли иметь конфигурацию, в которой все Аннотации с данным именем или типом автоматически RetentionPolicy.RUNTIME?

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

1 Ответ

0 голосов
/ 21 ноября 2018

Спецификация языка Java, раздел 9.6.4.2.@ Retention состояния:

Если T не имеет (мета) аннотации m, которая соответствует java.lang.annotation.Retention, то компилятор Java должен обработать Tкак если бы он имел такую ​​метааннотацию m с элементом, значение которого java.lang.annotation.RetentionPolicy.CLASS.

Как видите, строгое требование, чтобы отсутствующая аннотация была такой же, как @Retention(RetentionPolicy.CLASS).

Если вам нужен @Retention(RetentionPolicy.RUNTIME), то вы должны явно указать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...