Понимание обработки аннотаций в Java - PullRequest
1 голос
/ 18 апреля 2011

Может кто-нибудь описать использование обработки аннотаций ?
Моя последняя попытка понять аннотации не удалась.

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

  1. Документация
  2. Аннотации, используемые компилятором (@Deprecated, @Override, @SuppressWarnings)
  3. Обработка аннотаций (@Target и @Retention)

Пожалуйста, кто-нибудь объяснит мне Обработка аннотаций , направив меня к соответствующему учебнику.

Чтобы быть очень точным, я хочу знать больше о следующем метааннотации (типы аннотаций Java):

  • Target
  • Удержание
  • Документально
  • 1039 * Наследуется *

Я уже прошел много уроков, таких как this , но не смог получить много информации об обработке аннотаций.

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

@ Анупам Гупта - Я думаю, что ваша проблема в том, что вы недостаточно хорошо понимаете базовую / базовую Java, чтобы понять, как реально работают аннотации и обработка аннотаций. Например, тот факт, что вы не понимаете, что означает «рефлексивно во время выполнения», говорит о том, что вы не знакомы с рефлексией Java, и это важная часть ядра Java.

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


Для чего это стоит, документация к аннотации: здесь , здесь и здесь , и вы, возможно, сможете получить больше подсказок, прочитав сообщения в Oracle форум аннотаций .

2 голосов
/ 18 апреля 2011

Запрашиваемые аннотации - это аннотации, используемые для аннотирования. Их конкретные цели:

  • Target: указывает, где можно использовать аннотацию. Например. @Target(ElementType.METHOD) означает, что Аннотация может использоваться только для методов.

  • Retention: указывает, где / когда доступна аннотация. @Retention(RetentionPolicy.RUNTIME) означает, что он доступен во время выполнения с использованием отражения. Другие значения делают это только в файлах классов или во время компиляции (упомянутые выше параметры включают более поздние)

  • Documented Аннотация с этой аннотацией появится в javadoc
  • Inherited заставляет подклассы наследовать аннотированную аннотацию от своих суперклассов

Для всех четырех javadoc весьма полезен.

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