javaのenumの存在意義がよく分からなくなった
class a { enum ERozen { GIN, KANA, MIDORI; }; static final String[] m_astrNameList = { "水銀燈", "金糸雀", "翠星石" }; public static void main(String argv[]) { System.out.println(m_astrNameList[ERozen.KANA]); // ↑ERozen.KANA を int に変換できません } };
うそーん orz
一応 Enum#ordinal() なんていう int の値に変換するメソッドは存在するものの
列挙定数の序数 (列挙宣言での位置。初期定数はゼロの序数に割り当てられる) を返します。このメソッドは、ほとんどのプログラマにとって役に立ちません。このメソッドは、EnumSet と EnumMap などの洗練された enum ベースのデータ構造で使用するために設計されています。
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
とか、いかにも「内部用だよ! 勝手に使ったら滅殺豪波動ぶっ放すからね、お兄ちゃん☆」と言わんばかりの解説。 どうやら、enum値から数値へ変換する為の関数などは用意されていない模様です(たぶん)。
…正直、この仕様だと、利用場面が偉い限られるような……^^;