Содержание
Аннотация @Retention позволяет указать, в какой момент жизни программного кода будет доступна аннотация: только в исходном коде, в скомпилированном классе или во время выполнения программы.
Так, в примере указано, что аннотация будет доступна во время выполнения программы:
package com.seostella.annotation.def;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Mammal {
String sound();
int color();
}
Возможные типы аннотации:
Все эти аннотации являются элементами перечисления java.lang.annotation.RetentionPolicy.
Немного пояснения к приведенным типам: SOURCE - этим типом стоит пользоваться если Вы хотите расширить исходный код, описанный аннотацией; CLASS - используйте этот тип если хотите добавить какие-то характеристики к классам (например, создать список классов, которые используют аннотацию) до выполнения программы; RUNTIME - является наиболее используемым типам так как видна во время выполнения кода и, соответственно, можно воспользоваться возможностями рефлексии.
Внимание! По умолчанию используется тип CLASS.
В следующей статье будет рассмотрена аннотация @Documented.
< | Аннотации в Java. @Target | Аннотации в Java. @Documented | > |