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値から数値へ変換する為の関数などは用意されていない模様です(たぶん)。


…正直、この仕様だと、利用場面が偉い限られるような……^^;