Sobes.tech
Назад к вопросам
Junior — Middle
62

Каким образом аннотация становится доступной в процессе выполнения программы?

Ответ от нейросети

sobes.tech AI

Аннотация становится доступной во время выполнения программы, если она объявлена с политикой сохранения (RetentionPolicy) RUNTIME. Это указывается с помощью мета-аннотации @Retention:

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    String value();
}

Если аннотация имеет RetentionPolicy.RUNTIME, то её можно получить через Reflection API:

Class<?> clazz = MyClass.class;
if (clazz.isAnnotationPresent(MyAnnotation.class)) {
    MyAnnotation annotation = clazz.getAnnotation(MyAnnotation.class);
    System.out.println(annotation.value());
}

Таким образом, чтобы аннотация была доступна во время выполнения, она должна быть объявлена с @Retention(RetentionPolicy.RUNTIME).