Зміст
Анотація @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 | > |