Java enumの使い方

使い方

enum(列挙型)は、定数の有限集合を定義する。

package com.segakuin.example;

public class Sample {
  enum Season {SPRING, SUMMER, AUTUMN, WINTER};

  public static void main(String[] args) {
    Season season = Season.SUMMER;
    System.out.println(season);
  }
}

enum型の基底クラスはjava.lang.Enumである。したがってEnumクラスのメソッドを呼び出すことができる。

Enumクラスのメソッド
メソッド 説明
public static final 列挙名 valueOf(String name); 文字列から定数インスタンスを取得する。
public static final 列挙名[] values(); 宣言された定数すべてを含む配列(順序は記述順)を返す。

また、他に以下のようなメソッドが定義されている。

enumメソッド
メソッド 説明
public final String name(); 宣言で定義された定数名を返す。
public String toString(); 定数名を返す。デフォルトではnameメソッドと同じ値を返すが、オーバーライドすることも できる。
public final int ordinal(); 定数の宣言された順番を返す。

values()

enumのvaluesメソッドは、宣言された定数すべてを含む配列(順序は記述順)を返す。

public class Sample {
  enum Season {SPRING, SUMMER, AUTUMN, WINTER};
  public static void main(String[] args) {
    for (Season season : Season.values()) {
      System.out.println(season.ordinal() + ":" + season);
    }
  }
}

上記プログラムの実行結果を示す。

0:SPRING
1:SUMMER
2:AUTUMN
3:WINTER
public class Sample {
  enum Season {
    SPRING ("春"),
    SUMMER ("夏"),
    AUTUMN ("秋"),
    WINTER ("冬");
    private String name;
    Season(String name) {
      this.name = name;
    }
    public String toString() {
      return name;
    }
  };
  public static void main(String[] args) {
    for (Season season : Season.values()) {
      System.out.println(season.name() + ":" + season.toString());
    }
  }
}

上記プログラムの実行結果を示す。

SPRING:春
SUMMER:夏
AUTUMN:秋
WINTER:冬