Тип элемента Enum
- java.lang.Object
-
- java.lang.Enum<ElementType>
-
- java.lang.annotation.ElementType
- Все реализованные интерфейсы:
-
Serializable,Comparable<ElementType>
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 или не равными null в зависимости от того, появляется ли @NonNull при объявлении переменной.
- С тех пор как:
- 1.5
Константы перечисления
| Константа перечисления | Описание |
|---|---|
ANNOTATION_TYPE |
Объявление типа аннотации |
CONSTRUCTOR |
Объявление конструктора |
FIELD |
Объявление поля (включает константы перечисления) |
LOCAL_VARIABLE |
Объявление локальной переменной |
METHOD |
Объявление метода |
MODULE |
Объявление модуля. |
PACKAGE |
Объявление пакета |
PARAMETER |
Объявление формального параметра |
TYPE |
Объявление класса, интерфейса (включая тип аннотации) или перечисления |
TYPE_PARAMETER |
Объявление параметра типа |
TYPE_USE |
Использование типа |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static ElementType |
valueOf(String name) |
Возвращает константу перечисления этого типа с заданным именем. |
static ElementType[] |
values() |
Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. |
Методы, объявленные в классе java.lang.Enum
clone, compareTo, 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
Методы
values
public static ElementType[] values()
Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. Этот метод можно использовать для итерации по константам следующим образом:
for (ElementType c : ElementType.values()) System.out.println(c);
- Возвращает:
- массив, содержащий константы этого типа перечисления в порядке их объявления
valueOf
public static ElementType valueOf(String name)
Возвращает константу перечисления этого типа с заданным именем. Строка должна точно соответствовать идентификатору, используемому для объявления константы перечисления в этом типе. (Дополнительные пробелы не допускаются.)
- Параметры:
-
name- имя возвращаемой константы перечисления. - Возвращает:
- константу перечисления с заданным именем
- Исключения:
-
IllegalArgumentException- если в этом типе перечисления нет константы с заданным именем -
NullPointerException- если аргумент равен null
© 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/ElementType.html