The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
An enum is a language construct that is used to define type-safe enumerations which can be used when a fixed set of named values is desired. All enums implicitly extend
java.lang.Enum
. Enums may contain one or more enum constants, which define unique instances of the enum type. An enum declaration defines an enum type which is very similar to a class in that it may have members such as fields, methods, and constructors (with some restrictions).
Since enums are classes, reflection has no need to define an explicit java.lang.reflect.Enum
class. The only Reflection APIs that are specific to enums are
Class.isEnum()
,
Class.getEnumConstants()
, and
java.lang.reflect.Field.isEnumConstant()
. Most reflective operations involving enums are the same as any other class or member. For example, enum constants are implemented as public static final
fields on the enum. The following sections show how to use
Class
and
java.lang.reflect.Field
with enums.
For an introduction to enums, see the Enum Types lesson.