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

Аннотация Inherited

Аннотация Inherited - это мета-аннотация, которая применяется к другим аннотациям и указывает, что если класс помечен такой аннотацией, то его подклассы автоматически наследуют эту аннотацию. Сама по себе Inherited не принимает параметров. Она работает только с аннотациями, у которых политика удержания - RUNTIME, поскольку наследование проверяется через рефлексию во время выполнения. Если аннотация помечена Inherited, то при вызове метода getAnnotation у подкласса будет возвращена аннотация, унаследованная от суперкласса.

Синтаксис

@Inherited @interface AnnotationName { // элементы аннотации }

Пример

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

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

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

true

Пример

Давайте убедимся, что без Inherited аннотация не наследуется подклассом:

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

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

false

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

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