enumは型安全な列挙定数が作れるこれですね。 public enum Sample { HOGE, FOO, BAR, } enum basics - しげるメモによるとenumってクラス本体にメソッド定義できるんですね。 public enum Sample { HOGE, FOO, BAR, ; // セミコロンで区切る public boolean isHoge() { return this == HOGE; } } この仕組みを使って「ステートパターンをenumで」 public class Lifecycle { // 初期状態はINITIALに固定 private State state = State.INITIAL; // 外側に公開する状態遷移メソッド public void start() { state = state.start(this); } public