Spec-Zone.ru › OpenJDK 25

Класс 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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/Enum.html

Spec-Zone.ru

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