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

Объявление @interface

Ключевое слово @interface используется для объявления собственной аннотации. Аннотация - это специальный тип, который может содержать элементы (похожие на методы), но не содержит логики. Внутри @interface объявляются элементы аннотации, у каждого элемента можно задать значение по умолчанию. Первым параметром при использовании аннотации указывается значение для элемента value, остальные элементы передаются по имени. Аннотации применяются к классам, методам, полям и другим элементам кода.

Синтаксис

public @interface AnnotationName { type elementName(); type elementName() default value; }

Пример

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

@interface MyAnnotation { String value(); } @MyAnnotation("abcde") public class Main { public static void main(String[] args) { Class<?> cls = Main.class; MyAnnotation ann = cls.getAnnotation(MyAnnotation.class); System.out.println(ann.value()); } }

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

"abcde"

Пример

Давайте объявим аннотацию с несколькими элементами и значением по умолчанию:

@interface Info { String author(); int version() default 1; } @Info(author = "John", version = 2) public class Main { public static void main(String[] args) { Class<?> cls = Main.class; Info info = cls.getAnnotation(Info.class); System.out.println(info.author()); System.out.println(info.version()); } }

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

"John" 2

Пример

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

@interface Tags { String[] value(); } public class Main { @Tags({"a", "b", "c"}) public static void doSomething() { System.out.println("done"); } public static void main(String[] args) throws Exception { Tags tags = Main.class .getMethod("doSomething") .getAnnotation(Tags.class); for (String tag : tags.value()) { System.out.println(tag); } } }

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

"a" "b" "c"

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

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