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语言枚举类的通用基类。有关枚举的更多信息,包括编译器合成的隐式声明方法的描述,请参阅《Java语言规范》第8.9节。枚举类都是可序列化的,并且通过序列化机制接收特殊处理。用于枚举常量的序列化表示不能自定义。声明的方法和字段,否则会与序列化交互的字段将被忽略,包括
serialVersionUID
;有关详细信息,请参阅《Java对象序列化规范》。
- 参见 Java语言规范:
-
8.9 枚举类
8.9.3 枚举成员
- 自 JDK 版本:
- 1.5
- 外部规范
- 另请参见:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
Enum.EnumDesc<E extends Enum<E>>
一个enum
常量的名义描述符。 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final Object
clone()
抛出 CloneNotSupportedException。final int
将此枚举与指定对象进行比较以确定顺序。final Optional
<Enum.EnumDesc<E>> 如果可以构造此实例的枚举描述符EnumDesc
,则返回该描述符,否则返回一个空的Optional
。final boolean
如果指定对象等于此枚举常量,则返回true。protected final void
finalize()
已弃用,将来会移除: 该API元素可能会在将来的版本中被移除。终结已被弃用以供移除。返回与此枚举常量的枚举类型对应的Class对象。final int
hashCode()
返回此枚举常量的哈希码。final String
name()
返回此枚举常量的名称,与其在枚举声明中声明的名称完全相同。final int
ordinal()
返回此枚举常量的顺序(在其枚举声明中的位置,其中初始常量被分配为零)。toString()
返回此枚举常量的名称,与声明中包含的名称相同。static <T extends Enum<T>>
T返回具有指定名称的指定枚举类的枚举常量。
-
Constructor Details
-
Enum
唯一的构造函数。程序员不能调用此构造函数。它是由编译器根据枚举类声明生成的代码使用的。- 参数:
-
name
- 此枚举常量的名称,用于声明它的标识符。 -
ordinal
- 此枚举常量的顺序(在枚举声明中的位置,其中初始常量被分配为零)。
-
-
Method Details
-
name
返回此枚举常量的名称,与其在枚举声明中声明的名称完全相同。大多数程序员应该优先使用toString()
方法,因为toString方法可能返回一个更用户友好的名称。 此方法主要设计用于在正确性取决于获取确切名称的专门情况中使用,该名称不会因发布版本而变化。- 返回:
- 此枚举常量的名称
-
ordinal
public final int ordinal()- 返回:
- 此枚举常量的顺序
-
toString
返回此枚举常量的名称,如声明中包含的名称。此方法可能会被覆盖,尽管通常不是必要或可取的。当存在更“程序员友好”的字符串形式时,枚举类应该覆盖此方法。 -
equals
如果指定对象等于此枚举常量,则返回true。 -
hashCode
public final int hashCode()返回此枚举常量的哈希码。 -
clone
抛出 CloneNotSupportedException。这确保了枚举永远不会被克隆,这对于保留它们的“单例”状态是必要的。- 覆盖:
-
clone
在类Object
中 - 返回:
- (永不返回)
- 抛出:
-
CloneNotSupportedException
- 如果对象的类不支持Cloneable
接口。覆盖clone
方法的子类也可以抛出此异常,以指示实例无法被克隆。 - 另请参见:
-
compareTo
将此枚举与指定对象进行比较以确定顺序。返回负整数、零或正整数,以指示此对象是否小于、等于或大于指定对象。枚举常量只能与相同枚举类型的其他枚举常量进行比较。此方法实现的自然顺序是常量声明的顺序。- 指定者:
-
compareTo
在接口Comparable<E extends Enum<E>>
中 - 参数:
-
o
- 要比较的对象。 - 返回:
- 一个负整数、零或正整数,表示此对象是否小于、等于或大于指定对象。
-
getDeclaringClass
返回与此枚举常量的枚举类型对应的Class对象。两个枚举常量 e1 和 e2 属于相同的枚举类型,当且仅当 e1.getDeclaringClass() == e2.getDeclaringClass()。(对于具有特定常量特定类主体的枚举常量,此方法返回的值可能与Object.getClass()
方法返回的值不同。)- 返回:
- 与此枚举常量的枚举类型对应的Class对象
-
describeConstable
如果可以构造此实例的枚举描述符EnumDesc
,则返回该描述符,否则返回一个空的Optional
。- 指定者:
-
describeConstable
在接口Constable
中 - 返回:
-
包含生成的名义描述符的
Optional
,或者如果无法构造则返回一个空的Optional
。 - 自 JDK 版本:
- 12
-
valueOf
返回指定枚举类中指定名称的枚举常量。名称必须与在此类中用于声明枚举常量的标识符完全匹配。(不允许存在多余的空白字符。)请注意,对于特定的枚举类
T
,可以使用该枚举上隐式声明的public static T valueOf(String)
方法,而不是使用此方法从名称映射到相应的枚举常量。可以通过调用该类的隐式public static T[] values()
方法来获取枚举类的所有常量。- 类型参数:
-
T
- 要返回其常量的枚举类 - 参数:
-
enumClass
- 要返回常量的枚举类的Class
对象 -
name
- 要返回的常量的名称 - 返回:
- 指定枚举类中指定名称的枚举常量
- 抛出:
-
IllegalArgumentException
- 如果指定的枚举类没有具有指定名称的常量,或指定的类对象不表示枚举类 -
NullPointerException
- 如果enumClass
或name
为null - 自版本:
- 1.5
-
finalize
Deprecated, for removal: This API element is subject to removal in a future version.Finalization has been deprecated for removal. SeeObject.finalize()
for background information and details about migration options.枚举类不能有finalize方法。
-