Spec-Zone.ru › OpenJDK 24

Класс 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 может быть удален в будущей версии.
Финализация устарела для удаления.
final Class<E> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы перечисления.
final int hashCode()
Возвращает хэш-код для этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления, точно так, как она объявлена в её объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (ее позицию в ее объявлении перечисления, где начальной константе присваивается порядковый номер ноль).
String toString()
Возвращает имя этой константы перечисления, как содержится в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу перечисления указанного класса перечисления с указанным именем.

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

getClass, notify, notifyAll, wait, wait, wait

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

Перечисление

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

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

name

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

ordinal

public final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в её объявлении перечисления, где начальной константе присваивается порядковый номер ноль). Большинству программистов этот метод не понадобится. Он предназначен для использования в сложных структурах данных на основе перечислений, таких как 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(java.lang.Object)

clone

protected final Object clone() throws CloneNotSupportedException
Выбрасывает CloneNotSupportedException. Это гарантирует, что перечисления никогда не клонируются, что необходимо для сохранения их статуса "singleton".
Переопределяет:
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 - объект класса перечисления, из которого нужно вернуть константу
name - имя константы для возврата
Возвращает:
константу перечисления указанного класса перечисления с указанным именем
Исключения:
IllegalArgumentException - если у указанного класса перечисления нет константы с указанным именем или указанный объект класса не представляет собой класс перечисления
NullPointerException - если enumClass или name равно null
С тех пор:
1.5

finalize

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

© 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/Enum.html

Spec-Zone.ru

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