Module  java.base
软件包  java.lang

Class Enum<E extends Enum<E>>

  • 参数类型
    E - 枚举类型的子类
    All Implemented Interfaces:
    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
    • 构造方法摘要

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

      所有方法  静态方法  接口方法  具体的方法 
      Modifier and Type 方法 描述
      protected Object clone​()
      抛出CloneNotSupportedException。
      int compareTo​(E o)
      将此枚举与指定的对象进行比较以进行订购。
      boolean equals​(Object other)
      如果指定的对象等于此枚举常量,则返回true。
      protected void finalize​()
      枚举类不能有finalize方法。
      Class<E> getDeclaringClass​()
      返回与此枚举常量的枚举类型相对应的Class对象。
      int hashCode​()
      返回此枚举常量的哈希码。
      String name​()
      返回此枚举常量的名称,与其枚举声明中声明的完全相同。
      int ordinal​()
      返回此枚举常数的序数(其枚举声明中的位置,其中初始常数的序数为零)。
      String toString​()
      返回声明中包含的此枚举常量的名称。
      static <T extends Enum<T>>
      T
      valueOf​(Class<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​()
        返回声明中包含的此枚举常量的名称。 该方法可以被覆盖,尽管它通常不是必需或不可取的。 当一个更“程序员友好”的字符串形式存在时,枚举类型应该覆盖此方法。
        重写:
        toStringObject
        结果
        这个枚举常数的名称
      • 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 Class<E> getDeclaringClass​()
        返回与此枚举常量的枚举类型相对应的Class对象。 当且仅当e1.getDeclaringClass()== e2.getDeclaringClass())时,两个枚举常量e1和e2具有相同的枚举类型。 (此方法返回的值可能与使用常量特定类体的枚举常量的Object.getClass()方法返回的值不同)
        结果
        该类对象对应于此枚举常量的枚举类型
      • 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返回常量的枚举类型的 Class对象
        name - 要返回的常量的名称
        结果
        具有指定名称的指定枚举类型的枚举常量
        异常
        IllegalArgumentException - 如果指定的枚举类型没有指定名称的常量,或者指定的类对象不表示枚举类型
        NullPointerException - 如果 enumTypename为空
        从以下版本开始:
        1.5