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
- 参见:
-
内部类总结
内部类 -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述protected final Object
clone()
抛出 CloneNotSupportedException。final int
比较此枚举与指定对象的顺序。final Optional<Enum.EnumDesc<E>>
如果可以构造,则返回此实例的枚举描述符EnumDesc
,如果不能构造,则返回空的Optional
。final boolean
如果指定对象等于此枚举常量,则返回 true。protected final void
finalize()
已弃用,将被删除:此 API 元素可能会在未来版本中删除。Finalization 已被弃用以移除。返回与此枚举常量的枚举类型对应的 Class 对象。final int
hashCode()
返回此枚举常量的哈希码。final String
name()
返回此枚举常量的名称,与其枚举声明中声明的完全相同。final int
ordinal()
返回此枚举常量的序数(它在其枚举声明中的位置,其中初始常量分配的序数为零)。toString()
返回声明中包含的此枚举常量的名称。static <T extends Enum<T>>
T返回具有指定名称的指定枚举类的枚举常量。
-
构造方法详细信息
-
Enum
唯一的构造方法。程序员不能调用此构造方法。它供编译器为响应枚举类声明而发出的代码使用。- 参数:
name
- - 这个枚举常量的名称,也就是用来声明它的标识符。ordinal
- - 此枚举常量的序数(它在枚举声明中的位置,其中初始常量分配的序数为零)。
-
-
方法详情
-
name
返回此枚举常量的名称,与其枚举声明中声明的完全相同。大多数程序员应该优先使用toString()
方法而不是这个方法,因为 toString 方法可能会返回一个对用户更友好的名称。此方法主要设计用于正确性取决于获取确切名称的特殊情况,该名称不会因版本而异。- 返回:
- 此枚举常量的名称
-
ordinal
public final int ordinal()- 返回:
- 此枚举常量的序数
-
toString
返回声明中包含的此枚举常量的名称。这个方法可以被重写,尽管它通常不是必需的或不可取的。当存在更“程序员友好”的字符串形式时,枚举类应该重写此方法。 -
equals
如果指定对象等于此枚举常量,则返回 true。 -
hashCode
public final int hashCode()返回此枚举常量的哈希码。 -
clone
抛出 CloneNotSupportedException。这保证了枚举永远不会被克隆,这是保持其“单例”状态所必需的。- 重写:
clone
在类Object
中- 返回:
- (never returns)
- 抛出:
CloneNotSupportedException
- 如果对象的类不支持Cloneable
接口。覆盖clone
方法的子类也可以抛出此异常以指示无法克隆实例。- 参见:
-
compareTo
比较此枚举与指定对象的顺序。当此对象小于、等于或大于指定对象时,返回负整数、零或正整数。枚举常量只能与相同枚举类型的其他枚举常量进行比较。此方法实现的自然顺序是声明常量的顺序。- 指定者:
compareTo
在接口Comparable<E extends Enum<E>>
中- 参数:
o
- 要比较的对象。- 返回:
- 负整数、零或正整数,因为此对象小于、等于或大于指定对象。
-
getDeclaringClass
返回与此枚举常量的枚举类型对应的 Class 对象。当且仅当 e1.getDeclaringClass() == e2.getDeclaringClass() 时,两个枚举常量 e1 和 e2 是相同的枚举类型。 (此方法返回的值可能不同于Object.getClass()
方法针对具有特定常量类主体的枚举常量返回的值。)- 返回:
- 与此枚举常量的枚举类型对应的 Class 对象
-
describeConstable
如果可以构造,则返回此实例的枚举描述符EnumDesc
,如果不能构造,则返回空的Optional
。- 指定者:
describeConstable
在接口Constable
中- 返回:
-
包含生成的标称描述符的
Optional
,或者如果无法构造则为空的Optional
。 - 自从:
- 12
-
valueOf
返回具有指定名称的指定枚举类的枚举常量。该名称必须与用于声明此类中的枚举常量的标识符完全匹配。 (不允许使用无关的空白字符。)请注意,对于特定的枚举类
T
,可以使用该枚举上隐式声明的public static T valueOf(String)
方法而不是此方法来从名称映射到相应的枚举常量。枚举类的所有常量都可以通过调用该类的隐式public static T[] values()
方法来获得。- 类型参数:
T
- 要返回常量的枚举类- 参数:
enumClass
- 从中返回常量的枚举类的Class
对象name
- 要返回的常量的名称- 返回:
- 具有指定名称的指定枚举类的枚举常量
- 抛出:
IllegalArgumentException
- 如果指定的枚举类没有具有指定名称的常量,或者指定的类对象不代表枚举类NullPointerException
- 如果enumClass
或name
为空- 自从:
- 1.5
-
finalize
已弃用,将被删除:此 API 元素可能会在未来版本中删除。Finalization 已被弃用以移除。有关迁移选项的背景信息和详细信息,请参阅Object.finalize()
。枚举类不能有 finalize 方法。
-