РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
120 of 1163 menu

Класс RetentionPolicy

Класс RetentionPolicy представляет собой перечисление (enum), которое используется в аннотации @Retention для указания того, как долго аннотация должна сохраняться. Другими словами, он определяет, будет ли аннотация доступна только в исходном коде, сохранена в скомпилированном классе или доступна во время выполнения программы через рефлексию. Класс содержит три константы: SOURCE, CLASS и RUNTIME.

Синтаксис

Синтаксис использования класса в аннотации @Retention:

@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.CLASS) @Retention(RetentionPolicy.RUNTIME)

Также можно обратиться к константам напрямую:

RetentionPolicy.SOURCE RetentionPolicy.CLASS RetentionPolicy.RUNTIME

Пример

Давайте создадим аннотацию с политикой удержания RUNTIME и проверим её наличие с помощью рефлексии:

import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation { } @MyAnnotation public class Main { public static void main(String[] args) { boolean res = Main.class.isAnnotationPresent(MyAnnotation.class); System.out.println(res); } }

Результат выполнения кода:

true

Пример

Давайте создадим аннотацию с политикой удержания SOURCE и проверим её наличие с помощью рефлексии:

import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.SOURCE) @interface MySourceAnnotation { } @MySourceAnnotation public class Main { public static void main(String[] args) { boolean res = Main.class.isAnnotationPresent(MySourceAnnotation.class); System.out.println(res); } }

Результат выполнения кода:

false

Смотрите также

  • аннотация Retention,
    которая задает политику удержания
  • константа SOURCE,
    которая означает доступность только в исходном коде
  • константа CLASS,
    которая означает доступность в скомпилированном классе
  • константа RUNTIME,
    которая означает доступность во время выполнения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить