Spec-Zone.ru › OpenJDK 27

Класс перечисления ElementType

java.lang.Object
java.lang.Enum<ElementType>
java.lang.annotation.ElementType
Все реализуемые интерфейсы:
Serializable, Comparable<ElementType>, Constable
public enum ElementType extends Enum<ElementType>
Константы этого класса перечисления предоставляют простую классификацию синтаксических позиций, в которых могут встречаться аннотации в программе Java. Эти константы используются в метааннотациях 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>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор константы enum.

Краткое описание констант перечисления

Константа перечисления Описание
ANNOTATION_TYPE
Объявление интерфейса аннотации (ранее известного как тип аннотации)
CONSTRUCTOR
Объявление конструктора
FIELD
Объявление поля (включая константы перечисления)
LOCAL_VARIABLE
Объявление локальной переменной
METHOD
Объявление метода
MODULE
Объявление модуля.
PACKAGE
Объявление пакета
PARAMETER
Объявление формального параметра
RECORD_COMPONENT
Компонент записи
TYPE
Объявление класса, интерфейса (включая интерфейс аннотации), перечисления или записи
TYPE_PARAMETER
Объявление параметра типа
TYPE_USE
Использование типа

Краткое описание методов

Модификатор и тип Метод Описание
static ElementType valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static ElementType[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Методы, объявленные в классе Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(ElementType o)
Сравнивает это перечисление с указанным объектом, определяя их порядок.
final Optional<Enum.EnumDesc<ElementType>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой объект Optional, если создать его нельзя.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, планируется удаление: этот элемент API планируется удалить в будущей версии.
Финализация помечена как устаревшая и планируется к удалению.
final Class<ElementType> getDeclaringClass()
Возвращает объект Class, соответствующий типу этого перечисления, к которому относится данная константа.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности в том виде, в каком оно объявлено в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается номер 0).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем.

Методы, объявленные в классе Object

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
final void notify()
Будит один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Будит все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание констант перечисления

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, в том числе обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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