Аннотация ИСТОЧНИК Политика хранения - PullRequest
23 голосов
/ 08 ноября 2011

Из Java doc:

CLASS: аннотации должны быть записаны компилятором в файл класса, но не должны сохраняться виртуальной машиной во время выполнения.

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

ИСТОЧНИК: аннотации должны отбрасываться компилятором.

Я понимаю использование RUNTIME (для использования аннотации с отражением) и CLASS (для компилятора), но я не понимаюпонять, когда можно использовать

@ Retention (RetentionPolicy.SOURCE)

Можете ли вы объяснить?

1 Ответ

18 голосов
/ 08 ноября 2011

Такие вещи, как @SuppressWarnings, @Override - это аннотации, используемые компилятором - они не нужны во время выполнения.Для тех RetentionPolicy.SOURCE будет иметь смысл.Также аннотации могут использоваться для генерации кода (смотрите Spring ROO) - такие аннотации также не требуются во время выполнения.

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