Spec-Zone.ru › OpenJDK 24

Перечисление 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:
@Target
4.1 Виды типов и значений
С тех пор как:
1.5

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum

Enum.EnumDesc<E extends Enum<E>>

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

Константа перечисления Описание
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()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

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

getClass, notify, notifyAll, wait, wait, wait

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

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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/annotation/ElementType.html

Spec-Zone.ru

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