Java の enum を switch で使う

  • eclipse だと、switch の中で enum のいくつかの要素を使い忘れていると、それを見つけて警告してくれる。
  • enum のすべての要素を使っていたとしても、コンパイラーはぜんぶ網羅したとみなしてくれない。だから初期化していない変数を switch の中のすべての case で代入したとしても、変数に未代入の恐れがあるというコンパイルエラーになってしまう。
  • switch の default を使うと enum の全部の要素を網羅しているのかしていないのかがあいまいになってしまう。

結論: enum を switch で使えない。if 〜 else if 〜 else で使うほうがマシ。