Spec-Zone.ru › OpenJDK 17

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

@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
Возвращает массив типов элементов, к которым может быть применена аннотация интерфейса.
Возвращает:
массив типов элементов, к которым может быть применена аннотация интерфейса

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

Spec-Zone.ru

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