Прежде чем продолжить изучение метаданных, следует обсудить правше сохранения аннотаций (annotation retention policies). Правила сохранения определяют, в какой момент аннотации уничтожаются. В языке Java описаны три таких правила — SOURCE, CLASS И RUNTIME, включенные в перечислимый тип Java.lang.annotation.RetentionPolicy.
Аннотация, заданная с правилом сохранения SOURCE, существует только в исходном тексте программы и отбрасывается во время компиляции.
Аннотация, заданная с правилом сохранения CLASS, помещается в файл .class в процессе компиляции. Но она не доступна в JVM (виртуальная машина Java) во время выполнения.
Аннотация, заданная с правилом сохранения RUNTIME, помещается в факт .class в процессе компиляции и доступна в JVM во время выполнения. Следовательно, правило RUNTIME предлагает максимальную продолжительность существования аннотации.
Правило сохранения для аннотации задается с помощью одной из встроенных аннотаций @Retention. Ее синтаксическая запись приведена в следующей строке:
@Retention {retention-policy)
В этой записи retention-policy задается одной из описанных ранее констант перечислимого типа. Если для аннотации не задано правило сохранения, по умолчанию задается правило CLASS.
В приведенном далее фрагменте аннотация типа MуАnnо использует аннотацию @Retention для задания правила сохранения RUNTIME. Следовательно, аннотация типа МуАnnо будет доступна в JVM во время выполнения программы:
@Retention(RetentionPolicy.RUNTIME)
@interface МуАnnо {
String str() ;
int val();
}
Опубликовал Kest
January 13 2009 10:32:55 ·
0 Комментариев ·
7140 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.