Enumerated Types
In previous chapters,
we’ve seen the class keyword used
to define class types, and the interface keyword
used to define interface types. This section introduces the
enum keyword, which is used to define an
enumerated type (informally called an enum). Enumerated types are new
in Java 5.0, and the features described here cannot be used (although
they can be partially simulated) prior to that release.
We begin with the basics: how to define and use an enumerated type, including common programming idioms involving enumerated types and values. Next, we discuss the more advanced features of enums and show how to simulate enums prior to Java 5.0.
Enumerated Types Basics
An enumerated type is a reference type with a finite (usually small) set of possible values, each of which is individually listed, or enumerated. Here is a simple enumerated type defined in Java:
public enum DownloadStatus { CONNECTING, READING, DONE, ERROR }Like class and interface, the
enum
keyword defines a new reference type. The
single line of Java code above defines an enumerated type named
DownloadStatus. The body of this type is simply a
comma-separated list of the four values of the type. These values are
like static final fields (which is why their names
are capitalized), and you refer to them with names like
DownloadStatus.CONNECTING,
DownloadStatus.READING, and so on. A variable of
type DownloadStatus can be assigned one of these
four values or null but nothing else. The values of an enumerated ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access