Spec-Zone.ru › OpenJDK 25

Интерфейс аннотации Target

@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) public @interface Target
Указывает контексты, в которых применим интерфейс аннотации. Контексты объявления и контексты типов, в которых может применяться интерфейс аннотации, указаны в JLS 9.6.4.1 и обозначаются в исходном коде константами перечисления java.lang.annotation.ElementType.

Если метааннотация @Target отсутствует в интерфейсе аннотации T, то аннотацию типа T можно записать как модификатор любого объявления.

Если присутствует метааннотация @Target, компилятор будет проверять соблюдение ограничений на использование, указанных константами перечисления ElementType, в соответствии с JLS 9.7.4.

Например, эта метааннотация @Target указывает, что объявленный интерфейс сам является интерфейсом метааннотации. Ее можно использовать только в объявлениях интерфейсов аннотаций:

   @Target(ElementType.ANNOTATION_TYPE)
   public @interface MetaAnnotationType {
       ...
   }

Эта метааннотация @Target указывает, что объявленный класс или интерфейс предназначен исключительно для использования в качестве вложенного класса или интерфейса в сложных объявлениях интерфейсов аннотаций. Ее нельзя использовать для непосредственного аннотирования каких-либо элементов:

   @Target({})
   public @interface MemberInterface {
       ...
   }

Ошибка компиляции возникает, если одна и та же константа ElementType встречается в аннотации @Target более одного раза. Например, следующая метааннотация @Target является недопустимой:

   @Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD})
   public @interface Bogus {
       ...
   }
См. Спецификацию языка Java:
9.6.4.1 @Target
9.7.4 Места, в которых могут располагаться аннотации
9.7.5 Несколько аннотаций одного и того же интерфейса
Начиная с версии:
1.5

Краткое описание обязательных элементов

Модификатор и тип Обязательный элемент Описание
ElementType[] value
Возвращает массив видов элементов, к которым можно применить интерфейс аннотации.

Подробное описание элементов

value

ElementType[] value
Возвращает массив видов элементов, к которым можно применить интерфейс аннотации.
Возвращает:
массив видов элементов, к которым можно применить интерфейс аннотации

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/annotation/Target.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API