模块 java.base
 java.lang

类枚举<E 扩展枚举<E>>

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.9Java 语言规范.枚举类都是可序列化的,并接受序列化机制的特殊处理。无法自定义用于枚举常量的序列化表示。否则将与序列化交互的方法和字段的声明将被忽略,包括 serialVersionUID ;有关详细信息,请参阅 Java 对象序列化规范

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

Java 语言规范:
8.9 枚举类
8.9.3 枚举成员
自从:
1.5
参见:
  • 内部类总结

    内部类
    修饰符和类型
    描述
    static final class 
    Enum.EnumDesc<E extends Enum<E>>
    名义描述符 用于 enum 常量。
  • 构造方法总结

    构造方法
    修饰符
    构造方法
    描述
    protected
    Enum(String name, int ordinal)
    唯一的构造方法。
  • 方法总结

    修饰符和类型
    方法
    描述
    protected final Object
    抛出 CloneNotSupportedException。
    final int
    比较此枚举与指定对象的顺序。
    如果可以构造,则返回此实例的枚举描述符 EnumDesc,如果不能构造,则返回空的 Optional
    final boolean
    equals(Object other)
    如果指定对象等于此枚举常量,则返回 true。
    protected final void
    已弃用,将被删除:此 API 元素可能会在未来版本中删除。
    Finalization 已被弃用以移除。
    final Class<E>
    返回与此枚举常量的枚举类型对应的 Class 对象。
    final int
    返回此枚举常量的哈希码。
    final String
    name()
    返回此枚举常量的名称,与其枚举声明中声明的完全相同。
    final int
    返回此枚举常量的序数(它在其枚举声明中的位置,其中初始常量分配的序数为零)。
    返回声明中包含的此枚举常量的名称。
    static <T extends Enum<T>>
    T
    valueOf(Class<T> enumClass, 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()
      返回声明中包含的此枚举常量的名称。这个方法可以被重写,尽管它通常不是必需的或不可取的。当存在更“程序员友好”的字符串形式时,枚举类应该重写此方法。
      重写:
      toString 在类 Object
      返回:
      此枚举常量的名称
    • equals

      public final boolean equals(Object  other)
      如果指定对象等于此枚举常量,则返回 true。
      重写:
      equals 在类 Object
      参数:
      other - 要与此对象进行相等性比较的对象。
      返回:
      如果指定对象等于此枚举常量,则为真。
      参见:
    • hashCode

      public final int hashCode()
      返回此枚举常量的哈希码。
      重写:
      hashCode 在类 Object
      返回:
      此枚举常量的哈希码。
      参见:
    • clone

      protected final Object  clone() throws CloneNotSupportedException
      抛出 CloneNotSupportedException。这保证了枚举永远不会被克隆,这是保持其“单例”状态所必需的。
      重写:
      clone 在类 Object
      返回:
      (never returns)
      抛出:
      CloneNotSupportedException - 如果对象的类不支持 Cloneable 接口。覆盖 clone 方法的子类也可以抛出此异常以指示无法克隆实例。
      参见:
    • compareTo

      public final int compareTo(E  o)
      比较此枚举与指定对象的顺序。当此对象小于、等于或大于指定对象时,返回负整数、零或正整数。枚举常量只能与相同枚举类型的其他枚举常量进行比较。此方法实现的自然顺序是声明常量的顺序。
      指定者:
      compareTo 在接口 Comparable<E extends Enum<E>>
      参数:
      o - 要比较的对象。
      返回:
      负整数、零或正整数,因为此对象小于、等于或大于指定对象。
    • getDeclaringClass

      public final Class <E > getDeclaringClass()
      返回与此枚举常量的枚举类型对应的 Class 对象。当且仅当 e1.getDeclaringClass() == e2.getDeclaringClass() 时,两个枚举常量 e1 和 e2 是相同的枚举类型。 (此方法返回的值可能不同于 Object.getClass() 方法针对具有特定常量类主体的枚举常量返回的值。)
      返回:
      与此枚举常量的枚举类型对应的 Class 对象
    • describeConstable

      public final Optional <Enum.EnumDesc <E >> describeConstable()
      如果可以构造,则返回此实例的枚举描述符 EnumDesc,如果不能构造,则返回空的 Optional
      指定者:
      describeConstable 在接口 Constable
      返回:
      包含生成的标称描述符的 Optional ,或者如果无法构造则为空的 Optional
      自从:
      12
    • valueOf

      public static <T extends Enum <T>> T valueOf(Class <T> enumClass, String  name)
      返回具有指定名称的指定枚举类的枚举常量。该名称必须与用于声明此类中的枚举常量的标识符完全匹配。 (不允许使用无关的空白字符。)

      请注意,对于特定的枚举类 T ,可以使用该枚举上隐式声明的 public static T valueOf(String) 方法而不是此方法来从名称映射到相应的枚举常量。枚举类的所有常量都可以通过调用该类的隐式public static T[] values()方法来获得。

      类型参数:
      T - 要返回常量的枚举类
      参数:
      enumClass - 从中返回常量的枚举类的 Class 对象
      name - 要返回的常量的名称
      返回:
      具有指定名称的指定枚举类的枚举常量
      抛出:
      IllegalArgumentException - 如果指定的枚举类没有具有指定名称的常量,或者指定的类对象不代表枚举类
      NullPointerException - 如果 enumClassname 为空
      自从:
      1.5
    • finalize

      @Deprecated (since ="18", forRemoval =true) protected final void finalize()
      已弃用,将被删除:此 API 元素可能会在未来版本中删除。
      Finalization 已被弃用以移除。有关迁移选项的背景信息和详细信息,请参阅 Object.finalize()
      枚举类不能有 finalize 方法。
      重写:
      finalize 在类 Object
      参见: