Тип аннотации «Цель»

@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 MemberType {
        ...
    }

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

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD})
    public @interface Bogus {
        ...
    }
С момента:
1.5

Обязательные элементы

Модификатор и тип Обязательный элемент Описание
ElementType[] value

Возвращает массив видов элементов, к которым может применяться тип аннотации.

Элементы

value

ElementType[] value

Возвращает массив видов элементов, к которым может применяться тип аннотации.

Возвращает:
массив видов элементов, к которым может применяться тип аннотации

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

Spec-Zone .ru
спецификации, руководства, описания, API