Class Enum<E extends Enum<E>>

java.lang.Object
java.lang.Enum<E>
Type Parameters:
E - The type of the enum subclass
All Implemented Interfaces:
Serializable,Comparable<E>,Constable

public abstract classEnum<E extends Enum<E>>extendsObjectimplementsConstable,Comparable<E>,Serializable
This is the common base class of all Java language enumeration classes.More information about enums, including descriptions of theimplicitly declared methods synthesized by the compiler, can befound in section8.9 ofThe Java LanguageSpecification.Enumeration classes are all serializable and receive special handlingby the serialization mechanism. The serialized representation usedfor enum constants cannot be customized. Declarations of methodsand fields that would otherwise interact with serialization areignored, includingserialVersionUID; see theJavaObject Serialization Specification for details.

Note that when using an enumeration type as the type of a setor as the type of the keys in a map, specialized and efficientset andmap implementations are available.

SeeJava Language Specification:
8.9 Enum Classes
8.9.3 Enum Members
Since:
1.5
External Specifications
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    Anominal descriptor for anenum constant.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Enum(String name, int ordinal)
    Sole constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected finalObject
    Throws CloneNotSupportedException.
    final int
    Compares this enum with the specified object for order.
    Returns an enum descriptorEnumDesc for this instance, if one can beconstructed, or an emptyOptional if one cannot be.
    final boolean
    equals(Object other)
    Returns true if the specified object is equal to thisenum constant.
    protected final void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Finalization has been deprecated for removal.
    finalClass<E>
    Returns the Class object corresponding to this enum constant'senum type.
    final int
    Returns a hash code for this enum constant.
    finalString
    Returns the name of this enum constant, exactly as declared in itsenum declaration.
    final int
    Returns the ordinal of this enumeration constant (its positionin its enum declaration, where the initial constant is assignedan ordinal of zero).
    Returns the name of this enum constant, as contained in thedeclaration.
    static <T extendsEnum<T>>
    T
    valueOf(Class<T> enumClass,String name)
    Returns the enum constant of the specified enum class with thespecified name.

    Methods declared in class Object

    getClass,notify,notifyAll,wait,wait,wait
  • Constructor Details

    • Enum

      protected Enum(String name, int ordinal)
      Sole constructor. Programmers cannot invoke this constructor.It is for use by code emitted by the compiler in response toenum class declarations.
      Parameters:
      name - The name of this enum constant, which is the identifier used to declare it.
      ordinal - The ordinal of this enumeration constant (its position in the enum declaration, where the initial constant is assigned an ordinal of zero).
  • Method Details

    • name

      public final String name()
      Returns the name of this enum constant, exactly as declared in itsenum declaration.Most programmers should use thetoString() method inpreference to this one, as the toString method may returna more user-friendly name. This method is designed primarily foruse in specialized situations where correctness depends on getting theexact name, which will not vary from release to release.
      Returns:
      the name of this enum constant
    • ordinal

      public final int ordinal()
      Returns the ordinal of this enumeration constant (its positionin its enum declaration, where the initial constant is assignedan ordinal of zero).Most programmers will have no use for this method. It isdesigned for use by sophisticated enum-based data structures, suchasEnumSet andEnumMap.
      Returns:
      the ordinal of this enumeration constant
    • toString

      public String toString()
      Returns the name of this enum constant, as contained in thedeclaration. This method may be overridden, though it typicallyisn't necessary or desirable. An enum class should override thismethod when a more "programmer-friendly" string form exists.
      Overrides:
      toString in class Object
      Returns:
      the name of this enum constant
    • equals

      public final boolean equals(Object other)
      Returns true if the specified object is equal to thisenum constant.
      Overrides:
      equals in class Object
      Parameters:
      other - the object to be compared for equality with this object.
      Returns:
      true if the specified object is equal to this enum constant.
      See Also:
    • hashCode

      public final int hashCode()
      Returns a hash code for this enum constant.
      Overrides:
      hashCode in class Object
      Returns:
      a hash code for this enum constant.
      See Also:
    • clone

      protected final Object clone() throwsCloneNotSupportedException
      Throws CloneNotSupportedException. This guarantees that enumsare never cloned, which is necessary to preserve their "singleton"status.
      Overrides:
      clone in class Object
      Returns:
      (never returns)
      Throws:
      CloneNotSupportedException - if the object's class does not support theCloneable interface. Subclasses that override theclone method can also throw this exception to indicate that an instance cannot be cloned.
      See Also:
    • compareTo

      public final int compareTo(E o)
      Compares this enum with the specified object for order. Returns anegative integer, zero, or a positive integer as this object is lessthan, equal to, or greater than the specified object.Enum constants are only comparable to other enum constants of thesame enum type. The natural order implemented by thismethod is the order in which the constants are declared.
      Specified by:
      compareTo in interface Comparable<E extendsEnum<E>>
      Parameters:
      o - the object to be compared.
      Returns:
      a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.
    • getDeclaringClass

      public final Class<E> getDeclaringClass()
      Returns the Class object corresponding to this enum constant'senum type. Two enum constants e1 and e2 are of thesame enum type if and only if e1.getDeclaringClass() == e2.getDeclaringClass().(The value returned by this method may differ from the one returnedby theObject.getClass() method for enum constants withconstant-specific class bodies.)
      Returns:
      the Class object corresponding to this enum constant's enum type
    • describeConstable

      public final Optional<Enum.EnumDesc<E>> describeConstable()
      Returns an enum descriptorEnumDesc for this instance, if one can beconstructed, or an emptyOptional if one cannot be.
      Specified by:
      describeConstable in interface Constable
      Returns:
      AnOptional containing the resulting nominal descriptor,or an emptyOptional if one cannot be constructed.
      Since:
      12
    • valueOf

      public static <T extendsEnum<T>> T valueOf(Class<T> enumClass,String name)
      Returns the enum constant of the specified enum class with thespecified name. The name must match exactly an identifier usedto declare an enum constant in this class. (Extraneous whitespacecharacters are not permitted.)

      Note that for a particular enum classT, theimplicitly declaredpublic static T valueOf(String)method on that enum may be used instead of this method to mapfrom a name to the corresponding enum constant. All theconstants of an enum class can be obtained by calling theimplicitpublic static T[] values() method of thatclass.

      Type Parameters:
      T - The enum class whose constant is to be returned
      Parameters:
      enumClass - theClass object of the enum class from which to return a constant
      name - the name of the constant to return
      Returns:
      the enum constant of the specified enum class with the specified name
      Throws:
      IllegalArgumentException - if the specified enum class has no constant with the specified name, or the specified class object does not represent an enum class
      NullPointerException - ifenumClass orname is null
      Since:
      1.5
    • finalize

      @Deprecated(since="18",forRemoval=true)protected final void finalize()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Finalization has been deprecated for removal. SeeObject.finalize() for background information and detailsabout migration options.
      enum classes cannot have finalize methods.
      Overrides:
      finalize in class Object
      See Also: