/* This is to demonstrate how enums are just syntactic sugar. But this is not complete. What about hashValue, equals, compareTo, name, toString? */ --------------------------------------------- package com.example; import java.awt.Color; public final class MyEnum { public static final MyEnum ENUM_APPLE = new MyEnum(Color.GREEN); public static final MyEnum ENUM_BANANA = new MyEnum(Color.YELLOW); private final Color color; private MyEnum(final Color _color) { this.color = _color; } public Color getColor() { // OK, because Color is immutable. Otherwise return a clone: return color; } } --------------------------------------------- public enum MyEnum { ENUM_APPLE (Color.GREEN), ENUM_BANANA (Color.YELLOW); private final Color color; private MyEnum(final Color _color) { this.color = _color; } public Color getColor() { // OK, because Color is immutable. Otherwise return a clone: return color; } }