阅读(2867) (0)

鸿蒙OS Enum

2022-04-28 15:51:04 更新

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 中完成