Класс Enum<E extends Enum<E>>
- java.lang.Object
-
- java.lang.Enum<E>
- Type Parameters:
- - Тип подкласса перечисления
- Все реализованные интерфейсы:
-
Serializable,Comparable<E>
public abstract class Enum<E extends Enum<E>> extends Object implements Comparable<E>, Serializable
Это базовый класс всех типов перечислений языка Java. Более подробную информацию о перечислениях, включая описания неявно объявленных методов, сгенерированных компилятором, можно найти в разделе 8.9 спецификации языка Java™.
Обратите внимание, что при использовании типа перечисления в качестве типа множества или в качестве типа ключей в отображении доступны специализированные и эффективные реализации множеств множеств и отображений.
- C момента:
- 1.5
- См. также:
Class.getEnumConstants(),EnumSet,EnumMap, Сериализованная форма
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | Enum(String name,
int ordinal) | Единственный конструктор. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object | clone() | Бросает CloneNotSupportedException. |
int | compareTo(E o) | Сравнивает это перечисление с указанным объектом для определения порядка. |
boolean | equals(Object other) | Возвращает true, если указанный объект равен этому постоянному значению перечисления. |
protected void | finalize() | Классы перечислений не могут иметь методы finalize. |
Class<E> | getDeclaringClass() | Возвращает объект Class, соответствующий типу перечисления этого постоянного значения перечисления. |
int | hashCode() | Возвращает код хэша для этого постоянного значения перечисления. |
String | name() | Возвращает имя этого постоянного значения перечисления, точно так, как оно объявлено в его объявлении перечисления. |
int | ordinal() | Возвращает порядковый номер этого постоянного значения перечисления (его позицию в его объявлении перечисления, где начальному постоянному значению присваивается порядковый номер ноль). |
String | toString() | Возвращает имя этого постоянного значения перечисления, как оно содержится в объявлении. |
static <T extends Enum<T>> | valueOf(Class<T> enumType,
String name) | Возвращает постоянное значение перечисления заданного типа перечисления с заданным именем. |
Методы, объявленные в классе java.lang.Object
getClass, notify, notifyAll, wait, wait, waitКонструкторы
Enum
protected Enum(String name,
int ordinal)Единственный конструктор. Программисты не могут вызвать этот конструктор. Он используется кодом, сгенерированным компилятором в ответ на объявления типов перечислений.
- Параметры:
- - Имя этого постоянного значения перечисления, являющегося идентификатором, используемым для его объявления.
- - Порядковый номер этого постоянного значения перечисления (его позиция в объявлении перечисления, где начальному постоянному значению присваивается порядковый номер ноль).
Методы
name
public final String name()
Возвращает имя этого постоянного значения перечисления, точно так, как оно объявлено в его объявлении перечисления. Большинству программистов следует использовать метод toString() вместо этого, так как метод toString может возвращать более удобное для пользователя имя. Этот метод предназначен в первую очередь для использования в специализированных ситуациях, когда правильность зависит от получения точного имени, которое не будет меняться от выпуска к выпуску.
- Возвращает:
- имя этого постоянного значения перечисления
ordinal
public final int ordinal()
Возвращает порядковый номер этого постоянного значения перечисления (его позицию в его объявлении перечисления, где начальному постоянному значению присваивается порядковый номер ноль). Большинству программистов этот метод не нужен. Он предназначен для использования в сложных структурах данных на основе перечислений, таких как EnumSet и EnumMap.
- Возвращает:
- порядковый номер этого постоянного значения перечисления
toString
public String toString()
Возвращает имя этого постоянного значения перечисления, как оно содержится в объявлении. Этот метод может быть переопределен, хотя обычно это не нужно или нежелательно. Тип перечисления должен переопределить этот метод, когда существует более «дружественный для программиста» строковый формат.
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, соответствующий типу перечисления этого постоянного значения перечисления
valueOf
public static <T extends Enum<T>> T valueOf(Class<T> enumType,
String name)Возвращает постоянное значение перечисления заданного типа перечисления с заданным именем. Имя должно точно совпадать с идентификатором, используемым для объявления постоянного значения перечисления в этом типе. (Дополнительные символы пробелов недопустимы.)
Обратите внимание, что для конкретного типа перечисления T, неявно объявленный метод public static T valueOf(String) в этом перечислении может использоваться вместо этого метода для сопоставления имени с соответствующим постоянным значением перечисления. Все постоянные значения типа перечисления могут быть получены путем вызова неявно объявленного метода public static T[] values() этого типа.
- Type Parameters:
- - Тип перечисления, постоянное значение которого должно быть возвращено
- Параметры:
enumType- объектClassтипа перечисления, из которого необходимо вернуть постоянное значениеname- имя возвращаемого постоянного значения- Возвращает:
- постоянное значение перечисления заданного типа перечисления с заданным именем
- Бросает:
IllegalArgumentException- если указанный тип перечисления не имеет постоянного значения с заданным именем или если указанный объект класса не представляет тип перечисленияNullPointerException- еслиenumTypeилиnameравно null- C момента:
- 1.5
finalize
protected final void finalize()
Классы перечислений не могут иметь методы finalize.
- Переопределяет:
finalizeв классеObject- См. также:
-
WeakReference,PhantomReference
© 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/Enum.html