Enumerated Types
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.
- Examining Enums illustrates how to retrieve an enum's constants and any other fields, constructors, and methods
- Getting and Setting Fields with Enum Types shows how to set and get fields with an enum constant value
- Troubleshooting describes common errors associated with enums
For an introduction to enums, see the Enum Types lesson.