Spec-Zone.ru › OpenJDK 21

Целевой интерфейс аннотации

@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:
@Target
Где могут располагаться аннотации
Множественные аннотации одного и того же интерфейса
С версии:
1.5

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

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

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

value

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

© 1993, 2023, 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/21/docs/api/java.base/java/lang/annotation/Target.html

Spec-Zone.ru

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