鸿蒙OS开发文档 鸿蒙OS Enum

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 2

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 节中找到。

请注意,当使用枚举类型作为集合的类型或映射中的键的类型时,可以使用专门且高效的集合和映射实现。

构造函数摘要

修饰符构造函数描述
protectedEnum(String name, int ordinal)唯一的构造函数

方法总结

修饰符和类型方法描述
protected Objectclone()引发 CloneNotSupportedException。
intcompareTo(E o)将此枚举与指定的对象进行比较以进行排序。
booleanequals(Object other)如果指定对象等于此枚举常量,则返回 true。
protected voidfinalize()枚举类不能有 finalize 方法。
ClassEgetDeclaringClass()返回与此枚举常量的枚举类型对应的 Class 对象。
inthashCode()返回此枚举常量的哈希码。
Stringname()返回此枚举常量的名称,与其枚举声明中的声明完全相同。
intordinal()返回此枚举常量的序号(它在其枚举声明中的位置,其中初始常量的序号为零)。
StringtoString()返回声明中包含的此枚举常量的名称。
static <T extends Enum<T>>TvalueOf(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 中完成