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, including
serialVersionUID; 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 ClassesModifier and TypeClassDescriptionstatic final classEnum.EnumDesc<E extendsEnum<E>>Anominal descriptor for anenumconstant.Constructor Summary
ConstructorsMethod Summary
Modifier and TypeMethodDescriptionprotected finalObjectclone()Throws CloneNotSupportedException.final intCompares this enum with the specified object for order.finalOptional<Enum.EnumDesc<E>> Returns an enum descriptorEnumDescfor this instance, if one can beconstructed, or an emptyOptionalif one cannot be.final booleanReturns true if the specified object is equal to thisenum constant.protected final voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization has been deprecated for removal.Returns the Class object corresponding to this enum constant'senum type.final inthashCode()Returns a hash code for this enum constant.finalStringname()Returns the name of this enum constant, exactly as declared in itsenum declaration.final intordinal()Returns the ordinal of this enumeration constant (its positionin its enum declaration, where the initial constant is assignedan ordinal of zero).toString()Returns the name of this enum constant, as contained in thedeclaration.static <T extendsEnum<T>>
TReturns the enum constant of the specified enum class with thespecified name.
Constructor Details
Enum
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
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, suchasEnumSetandEnumMap.- Returns:
- the ordinal of this enumeration constant
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.equals
hashCode
clone
Throws CloneNotSupportedException. This guarantees that enumsare never cloned, which is necessary to preserve their "singleton"status.- Overrides:
clonein classObject- Returns:
- (never returns)
- Throws:
CloneNotSupportedException- if the object's class does not support theCloneableinterface. Subclasses that override theclonemethod can also throw this exception to indicate that an instance cannot be cloned.- See Also:
compareTo
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:
compareToin interfaceComparable<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
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
Returns an enum descriptorEnumDescfor this instance, if one can beconstructed, or an emptyOptionalif one cannot be.- Specified by:
describeConstablein interfaceConstable- Returns:
- An
Optionalcontaining the resulting nominal descriptor,or an emptyOptionalif one cannot be constructed. - Since:
- 12
valueOf
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 class
T, 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- theClassobject of the enum class from which to return a constantname- 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 classNullPointerException- ifenumClassornameis null- Since:
- 1.5
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.