Spec-Zone.ru › OpenJDK 21

Класс 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()
Возвращает порядковый номер этой константы перечисления (ее позицию в ее объявлении перечисления, где начальной константе присваивается порядковый номер 0).
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 - Порядковый номер этой константы перечисления (её позиция в объявлении перечисления, где начальная константа получает порядковый номер 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(java.lang.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 подлежит удалению в будущей версии.
Финализация устарела для удаления. См. Object.finalize() для получения дополнительной информации и деталей по вариантам миграции.
Классы перечислений не могут иметь методы finalize.
Переопределяет:
finalize в классе Object
См. также:
  • WeakReference
  • PhantomReference

© 1993, 2023, 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/21/docs/api/java.base/java/lang/Enum.html

Spec-Zone.ru

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