Тип аннотации Target
@Documented @Retention(value=RUNTIME) @Target(value=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
public abstract 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.