模块  java.base
软件包  java.lang

Class Enum<E extends Enum<E>>

  • 参数类型
    E - 枚举类型子类
    实现的所有接口
    SerializableComparable<E>

    public abstract class Enum<E extends Enum<E>>
    extends Object
    implements Comparable<E>, Serializable
    这是所有Java语言枚举类型的公共基类。 有关枚举的更多信息,包括编译器合成的隐式声明方法的描述,请参见The Java™ Language Specification的第8.9

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

    从以下版本开始:
    1.5
    另请参见:
    Class.getEnumConstants()EnumSetEnumMapSerialized Form
    • 构造方法摘要

      构造方法  
      变量 构造器 描述
      protected Enum​(String name, int ordinal)
      唯一的构造函数。
    • 方法摘要

      所有方法  静态方法  实例方法 具体的方法 
      变量和类型 方法 描述
      protected Object clone()
      抛出CloneNotSupportedException。
      int compareTo​(E o)
      将此枚举与指定的订单对象进行比较。
      boolean equals​(Object other)
      如果指定的对象等于此枚举常量,则返回true。
      protected void finalize()
      枚举类不能有finalize方法。
      <E> getDeclaringClass()
      返回与此枚举常量的枚举类型对应的Class对象。
      int hashCode()
      返回此枚举常量的哈希码。
      String name()
      返回此枚举常量的名称,与其枚举声明中声明的完全相同。
      int ordinal()
      返回此枚举常量的序数(它在枚举声明中的位置,其中初始常量的序数为零)。
      String toString()
      返回声明中包含的此枚举常量的名称。
      static <T extends Enum<T>>
      T
      valueOf​(<T> enumType, String name)
      返回具有指定名称的指定枚举类型的枚举常量。
    • 构造方法详细信息

      • Enum

        protected Enum​(String name,
                       int ordinal)
        唯一的构造函数。 程序员无法调用此构造函数。 它由编译器发出的代码用于响应枚举类型声明。
        参数
        name - - 此枚举常量的名称,它是用于声明它的标识符。
        ordinal - - 此枚举常量的序数(它在枚举声明中的位置,其中初始常量的序数为零)。
    • 方法详细信息

      • name

        public final String name()
        返回此枚举常量的名称,与其枚举声明中声明的完全相同。 大多数程序员应优先使用toString()方法,因为toString方法可能会返回一个更加用户友好的名称。 此方法主要用于特殊情况,其中正确性取决于获取确切名称,该名称在不同版本之间不会有所不同。
        结果
        这个枚举常量的名称
      • ordinal

        public final int ordinal()
        返回此枚举常量的序数(它在枚举声明中的位置,其中初始常量的序数为零)。 大多数程序员都没有使用这种方法。 它设计用于复杂的基于枚举的数据结构,例如EnumSetEnumMap
        结果
        这个枚举常数的序数
      • toString

        public String toString()
        返回声明中包含的此枚举常量的名称。 可以覆盖该方法,但通常不需要或不需要。 当存在更“程序员友好”的字符串形式时,枚举类型应该重写此方法。
        重写:
        toString在类 Object
        结果
        这个枚举常量的名称
      • equals

        public final boolean equals​(Object other)
        如果指定的对象等于此枚举常量,则返回true。
        重写:
        equalsObject
        参数
        other - 要与此对象进行相等性比较的对象。
        结果
        如果指定的对象等于此枚举常量,则返回true。
        另请参见:
        Object.hashCode()HashMap
      • clone

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

        public final int compareTo​(E o)
        将此枚举与指定的订单对象进行比较。 返回负整数,零或正整数,因为此对象小于,等于或大于指定对象。 枚举常量仅与同一枚举类型的其他枚举常量相当。 此方法实现的自然顺序是声明常量的顺序。
        Specified by:
        compareTo在界面 Comparable<E extends Enum<E>>
        参数
        o - 要比较的对象。
        结果
        一个负整数,零或正整数,因为此对象小于,等于或大于指定的对象。
      • getDeclaringClass

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

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

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

        参数类型
        T - 要返回其常量的枚举类型
        参数
        enumType - 枚举类型的 对象,从中返回常量
        name - 要返回的常量的名称
        结果
        具有指定名称的指定枚举类型的枚举常量
        异常
        IllegalArgumentException - 如果指定的枚举类型没有具有指定名称的常量,或者指定的类对象不表示枚举类型
        NullPointerException - 如果 enumTypename为空
        从以下版本开始:
        1.5