あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

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 を使用できません。