[Java] enum(列挙型)とint(数値)の相互変換方法

enum(列挙型)とint(数値)の相互変換方法

enum→int

ordinalで順番を取得して数値に変換する。

enum EnumTest {A, B, C};
EnumTest e = EnumTest.A;
int i = e.ordinal();

int→enum

valuesで配列を取得し配列アクセスで列挙型に変換する。

配列境界チェックを超えるとArrayIndexOutOfBoundsException例外が発生するので自力でなんとかすること。

enum EnumTest {A, B, C};
int i = 0;
if(0 <= i && i < EnumTest.values().length) {
        EnumTest e = EnumTest.values()[i];
}
else {
        // ArrayIndexOutOfBoundsException
}
最終更新:2012年12月03日 09:20