- Type safety and value safety.
- Guaranteed singleton.
- Ability to define and override methods.
- Ability to use values in
switch
statementcase
statements without qualification. - Built-in sequentialization of values via
ordinal().
- Serialization by name not by value, which offers a degree of future-proofing.
EnumSet
andEnumMap
classes.