Enum
java.lang.Object
|—java.lang.Enum<E&
public abstract class Enum<E extends Enum<E>>
extends Object
implements Comparable<E>, Serializable
这是所有 Java 语言枚举类型的通用基类。 有关枚举的更多信息,包括对编译器合成的隐式声明方法的描述,可以在《Java™ 语言规范》的第 8.9 节中找到。
请注意,当使用枚举类型作为集合的类型或映射中的键的类型时,可以使用专门且高效的集合和映射实现。
构造函数摘要
修饰符 | 构造函数 | 描述 |
---|---|---|
protected | Enum(String name, int ordinal) | 唯一的构造函数 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
protected Object | clone() | 引发 CloneNotSupportedException。 |
int | compareTo(E o) | 将此枚举与指定的对象进行比较以进行排序。 |
boolean | equals(Object other) | 如果指定对象等于此枚举常量,则返回 true。 |
protected void | finalize() | 枚举类不能有 finalize 方法。 |
ClassE | getDeclaringClass() | 返回与此枚举常量的枚举类型对应的 Class 对象。 |
int | hashCode() | 返回此枚举常量的哈希码。 |
String | name() | 返回此枚举常量的名称,与其枚举声明中的声明完全相同。 |
int | ordinal() | 返回此枚举常量的序号(它在其枚举声明中的位置,其中初始常量的序号为零)。 |
String | toString() | 返回声明中包含的此枚举常量的名称。 |
static <T extends Enum<T>>T | valueOf(Class<T> enumType, String name) | 返回具有指定名称的指定枚举类型的枚举常量。 |
从类 java.lang.Object 继承的方法 |
---|
getClass, notify, notifyAll, wait, wait, wait |
构造函数详细信息
Enum
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()
返回声明中包含的此枚举常量的名称。 此方法可能会被覆盖,尽管它通常不是必需的或不可取的。 当存在更“程序员友好”的字符串形式时,枚举类型应覆盖此方法。
覆盖:
类 Object 中的 toString
返回:
此枚举常量的名称
equals
public final boolean equals(Object other)
如果指定对象等于此枚举常量,则返回 true。
覆盖:
类 Object 中的等于
参数:
参数名称 | 参数描述 |
---|---|
other | 要比较的对象与此对象是否相等。 |
返回:
如果指定的对象等于此枚举常量,则为 true。
hashCode
public final int hashCode()
返回此枚举常量的哈希码。
覆盖:
类 Object 中的 hashCode
返回:
此枚举常量的哈希码。
clone
protected final Object clone() throws CloneNotSupportedException
引发 CloneNotSupportedException。 这保证了枚举永远不会被克隆,这是保持它们的“单例”状态所必需的。
覆盖:
在类 Object 中克隆
返回:
从不返回
Throws:
Throw名称 | Throw描述 |
---|---|
CloneNotSupportedException | 如果对象的类不支持 Cloneable 接口。 覆盖 clone 方法的子类也可以抛出此异常,表示无法克隆实例。 |
compareTo
public final int compareTo(E o)
将此枚举与指定的对象进行比较以进行排序。 返回负整数、零或正整数,因为此对象小于、等于或大于指定对象。 枚举常量仅可与相同枚举类型的其他枚举常量进行比较。 此方法实现的自然顺序是声明常量的顺序。
指定者:
接口 Comparable<E extends EnumE> 中的 compareTo
参数:
参数名称 | 参数描述 |
---|---|
o | 要比较的对象。 |
返回:
负整数、零或正整数,因为此对象小于、等于或大于指定对象。
getDeclaringClass
public final ClassE getDeclaringClass()
返回与此枚举常量的枚举类型对应的 Class 对象。 当且仅当 e1.getDeclaringClass() == e2.getDeclaringClass() 时,两个枚举常量 e1 和 e2 是相同的枚举类型。 (对于具有特定于常量的类主体的枚举常量,此方法返回的值可能与 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() 方法获得。
类型参数:
类型参数名称 | 类型参数描述 |
---|---|
T | 要返回其常量的枚举类型 |
参数:
参数名称 | 参数描述 |
---|---|
enumType | 要从中返回常量的枚举类型的 Class 对象 |
name | 要返回的常量的名称 |
返回:
具有指定名称的指定枚举类型的枚举常量
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果指定的枚举类型没有具有指定名称的常量,或者指定的类对象不代表枚举类型 |
NullPointerException | 如果 enumType 或 name 为 null |
finalize
protected final void finalize()
枚举类不能有 finalize 方法。
覆盖:
在类 Object 中完成