J2SE5.0のenum型 その2
J2SE5.0のenum型は、if文で直接、整数値と比較するとコンパイルエラーとなりますが、switch文では、使用可能です。
... public enum Hoge { HOGE, BOOK, NOTE, PEN }; public boolean isPaper( Hoge hoge ) { switch ( hoge ) { case BOOK: case NOTE: return true; case HOGE: case PEN: return false; default: throw new AssertionError( "error "+hoge ); } } ...
enum型は、コンパイルすると、コンパイラがjava.lang.Enumをextendsしたpublic final classに変換します。つまり扱いは、classと同じ。enum型の宣言は、final class宣言することを意味します。つまりenum型の宣言で、abstract, final を使用できません。