Класс перечисления ElementType
- Все реализованные интерфейсы:
Serializable, Comparable<ElementType>, Constable
public enum ElementType extends Enum<ElementType>
Target, чтобы указать, где разрешено записывать аннотации заданного типа. Синтаксические места, в которых могут располагаться аннотации, делятся на контексты объявлений, в которых аннотации применяются к объявлениям, и контексты типов, в которых аннотации применяются к типам, используемым в объявлениях и выражениях.
Константы ANNOTATION_TYPE, CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, MODULE, PARAMETER, TYPE и TYPE_PARAMETER соответствуют контекстам объявлений, описанным в JLS 9.6.4.1.
Например, аннотацию, интерфейс которой мета-аннотирован с помощью @Target(ElementType.FIELD), можно записать только как модификатор объявления поля.
Константа TYPE_USE соответствует контекстам типов, описанным в JLS 4.11, а также двум контекстам объявлений: объявлениям классов и интерфейсов (включая объявления аннотаций) и объявлениям параметров типа.
Например, аннотацию, интерфейс которой мета-аннотирован с помощью @Target(ElementType.TYPE_USE), можно записать для класса или интерфейса поля (или внутри класса или интерфейса поля, если это вложенный или параметризованный класс или интерфейс либо класс массива), а также использовать как модификатор, например, объявления класса.
Константа TYPE_USE включает объявления классов и интерфейсов и объявления параметров типа для удобства разработчиков средств проверки типов, которые придают интерфейсам аннотаций семантическое значение. Например, если интерфейс аннотации NonNull мета-аннотирован с помощью @Target(ElementType.TYPE_USE), то @NonNull class C {...} средство проверки типов может интерпретировать как указание на то, что все переменные класса C не равны null, при этом переменные других классов могут считаться равными или не равными null в зависимости от того, присутствует ли @NonNull в объявлении переменной.
- См. Спецификацию языка Java:
- 9.6.4.1 @Target
4.1 Виды типов и значений
- Начиная с версии:
- 1.5
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Enum
Enum.EnumDesc<E>
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
ANNOTATION_TYPE |
Объявление интерфейса аннотации (ранее назывался типом аннотации). |
CONSTRUCTOR |
Объявление конструктора |
FIELD |
Объявление поля (включая константы перечисления) |
LOCAL_VARIABLE |
Объявление локальной переменной |
METHOD |
Объявление метода |
MODULE |
Объявление модуля. |
PACKAGE |
Объявление пакета |
PARAMETER |
Объявление формального параметра |
RECORD_COMPONENT |
Компонент записи |
TYPE |
Объявление класса, интерфейса (включая интерфейс аннотации), перечисления или записи |
TYPE_PARAMETER |
Объявление параметра типа |
TYPE_USE |
Использование типа |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static ElementType |
valueOf |
Возвращает константу перечисления этого класса с указанным именем. |
static ElementType[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Подробное описание констант перечисления
TYPE
public static final ElementType TYPE
FIELD
public static final ElementType FIELD
METHOD
public static final ElementType METHOD
PARAMETER
public static final ElementType PARAMETER
CONSTRUCTOR
public static final ElementType CONSTRUCTOR
LOCAL_VARIABLE
public static final ElementType LOCAL_VARIABLE
ANNOTATION_TYPE
public static final ElementType ANNOTATION_TYPE
PACKAGE
public static final ElementType PACKAGE
TYPE_PARAMETER
public static final ElementType TYPE_PARAMETER
- Начиная с версии:
- 1.8
TYPE_USE
public static final ElementType TYPE_USE
- Начиная с версии:
- 1.8
MODULE
public static final ElementType MODULE
- Начиная с версии:
- 9
RECORD_COMPONENT
public static final ElementType RECORD_COMPONENT
- См. Спецификацию языка Java:
- 8.10.3 Члены записи
9.7.4 Места расположения аннотаций
- Начиная с версии:
- 16
Подробное описание методов
values
public static ElementType[] values()
- Возвращает:
- массив, содержащий константы этого класса перечисления в порядке их объявления
valueOf
public static ElementType valueOf(String name)
- Параметры:
-
name— имя константы перечисления, которую нужно вернуть. - Возвращает:
- константу перечисления с указанным именем
- Исключения:
-
IllegalArgumentException— если в этом классе перечисления нет константы с указанным именем -
NullPointerException— если аргумент равен null
© 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/ElementType.html