Spec-Zone.ru › OpenJDK 27

Класс Enum<E extends Enum<E>>

java.lang.Object
java.lang.Enum<E>
Параметры типа:
E — Тип подкласса перечисления
Все реализуемые интерфейсы:
Serializable, Comparable<E>, Constable
public abstract class Enum<E extends Enum<E>> extends Object implements Constable, Comparable<E>, Serializable
Это общий базовый класс всех классов перечислений языка Java. Дополнительную информацию о перечислениях, включая описания неявно объявляемых методов, создаваемых компилятором, можно найти в разделе §8.9 Спецификации языка Java. Все классы перечислений сериализуемы и особым образом обрабатываются механизмом сериализации. Сериализованное представление, используемое для констант перечисления, нельзя настраивать. Объявления методов и полей, которые в противном случае взаимодействовали бы с сериализацией, игнорируются, включая serialVersionUID; подробности см. в Спецификации сериализации объектов Java.

Обратите внимание: при использовании типа перечисления в качестве типа множества или типа ключей в отображении доступны специализированные и эффективные реализации множества и отображения.

См. Спецификацию языка Java:
8.9 Классы перечислений
8.9.3 Члены перечислений
Начиная с версии:
1.5
Внешние спецификации
  • Спецификация сериализации объектов Java
См. также:
  • Class.getEnumConstants()
  • EnumSet
  • EnumMap

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

Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор константы enum.

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

Enum(String name, int ordinal)
Модификатор Конструктор Описание
protected
Единственный конструктор.

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

Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(E o)
Сравнивает это перечисление с указанным объектом для определения порядка.
final Optional<Enum.EnumDesc<E>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой объект Optional, если создать его нельзя.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Метод finalize объявлен устаревшим и будет удалён.
final Class<E> 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()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или прерывания, либо истечения определённого промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или прерывания, либо истечения определённого промежутка реального времени.

Подробное описание конструкторов

Enum

protected Enum(String name, int ordinal)
Единственный конструктор. Программисты не могут вызывать этот конструктор. Он предназначен для использования кодом, генерируемым компилятором в ответ на объявления классов перечислений.
Параметры:
name — Имя этой константы перечисления, то есть идентификатор, использованный для её объявления.
ordinal — Порядковый номер этой константы перечисления (её позиция в объявлении перечисления, где первой константе присваивается порядковый номер 0).

Подробное описание методов

name

public final String name()
Возвращает имя этой константы перечисления в точности в том виде, в котором оно объявлено в объявлении перечисления. Большинству программистов следует предпочесть этот метод методу toString(), поскольку метод toString может возвращать более удобное для пользователя имя. Этот метод предназначен главным образом для использования в особых случаях, когда корректность зависит от получения точного имени, которое не будет меняться от версии к версии.
Возвращает:
имя этой константы перечисления

ordinal

public final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается порядковый номер 0). Большинству программистов этот метод не понадобится. Он предназначен для использования сложными структурами данных на основе перечислений, например EnumSet и EnumMap.
Возвращает:
порядковый номер этой константы перечисления

toString

public String toString()
Возвращает имя этой константы перечисления, указанное в объявлении. Этот метод можно переопределить, хотя обычно в этом нет необходимости или смысла. Класс перечисления должен переопределять этот метод, если существует более «удобное для программиста» строковое представление.
Переопределяет:
toString в классе Object
Возвращает:
имя этой константы перечисления

equals

public final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
Переопределяет:
equals в классе Object
Параметры:
other — объект, который сравнивается с этим объектом на равенство.
Возвращает:
true, если указанный объект равен этой константе перечисления.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public final int hashCode()
Возвращает хеш-код этой константы перечисления.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этой константы перечисления.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

clone

protected final Object clone() throws CloneNotSupportedException
Выбрасывает CloneNotSupportedException. Это гарантирует, что перечисления никогда не клонируются, что необходимо для сохранения их статуса «одиночки».
Переопределяет:
clone в классе Object
Возвращает:
(не возвращает значение)
Выбрасывает:
CloneNotSupportedException — если класс объекта не поддерживает интерфейс Cloneable. Подклассы, переопределяющие метод clone, также могут выбрасывать это исключение, указывая, что экземпляр нельзя клонировать.
См. также:
  • Cloneable

compareTo

public final int compareTo(E o)
Сравнивает это перечисление с указанным объектом для определения порядка. Возвращает отрицательное целое число, ноль или положительное целое число, если этот объект меньше, равен или больше указанного объекта соответственно. Константы перечисления можно сравнивать только с другими константами того же типа перечисления. Естественный порядок, реализуемый этим методом, соответствует порядку объявления констант.
Определён в:
compareTo в интерфейсе Comparable<E extends Enum<E>>
Параметры:
o — объект для сравнения.
Возвращает:
отрицательное целое число, ноль или положительное целое число, если этот объект меньше, равен или больше указанного объекта соответственно.

getDeclaringClass

public final Class<E> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы перечисления. Две константы перечисления e1 и e2 принадлежат одному типу перечисления тогда и только тогда, когда e1.getDeclaringClass() == e2.getDeclaringClass(). (Значение, возвращаемое этим методом, может отличаться от значения, возвращаемого методом Object.getClass(), для констант перечисления с телами класса, специфичными для отдельных констант.)
Возвращает:
объект Class, соответствующий типу перечисления этой константы перечисления

describeConstable

public final Optional<Enum.EnumDesc<E>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой объект Optional, если создать его нельзя.
Определён в:
describeConstable в интерфейсе Constable
Возвращает:
Объект Optional, содержащий полученный номинальный дескриптор, или пустой объект Optional, если его нельзя создать.
Начиная с версии:
12

valueOf

public static <T extends Enum<T>> T valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем. Имя должно в точности совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Лишние пробельные символы не допускаются.)

Обратите внимание: для конкретного класса перечисления T вместо этого метода для преобразования имени в соответствующую константу перечисления можно использовать неявно объявленный метод public static T valueOf(String) этого перечисления. Все константы класса перечисления можно получить, вызвав неявный метод public static T[] values() этого класса.

Параметры типа:
T — Класс перечисления, константу которого требуется вернуть
Параметры:
enumClass — объект Class класса перечисления, из которого требуется вернуть константу
name — имя возвращаемой константы
Возвращает:
константу указанного класса перечисления с указанным именем
Выбрасывает:
IllegalArgumentException — если указанный класс перечисления не содержит константу с указанным именем или указанный объект класса не представляет класс перечисления
NullPointerException — если enumClass или name имеет значение null
Начиная с версии:
1.5

finalize

@Deprecated(since="18", forRemoval=true) protected final void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Метод finalize объявлен устаревшим и будет удалён. Общие сведения и информацию о вариантах миграции см. в разделе Object.finalize().
Классы перечислений не могут содержать методы finalize.
Переопределяет:
finalize в классе Object
См. также:
  • WeakReference
  • PhantomReference

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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