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

Поле SOURCE

Поле SOURCE класса RetentionPolicy используется в аннотации @Retention для указания того, что помеченная аннотация должна сохраняться только на уровне исходного кода. Это означает, что информация об аннотации полностью отбрасывается компилятором и не попадает в скомпилированный байт-код. Такие аннотации не доступны во время выполнения программы через рефлексию. Данное значение является значением по умолчанию для аннотации @Retention.

Синтаксис

RetentionPolicy.SOURCE

Пример

Давайте объявим аннотацию с политикой удержания SOURCE и применим её к классу:

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

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

false

Пример

Давайте убедимся, что аннотация с политикой SOURCE не видна через рефлексию, а аннотация с политикой RUNTIME видна:

import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.SOURCE) @interface SourceAnno { } @Retention(RetentionPolicy.RUNTIME) @interface RuntimeAnno { } @SourceAnno @RuntimeAnno public class Main { public static void main(String[] args) { Class<?> clazz = Main.class; System.out.println(clazz.isAnnotationPresent(SourceAnno.class)); System.out.println(clazz.isAnnotationPresent(RuntimeAnno.class)); } }

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

false true

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

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