属性ごとに列挙オブジェクトを取得する方法をJavaで実装
Javaでは、列挙定数オブジェクトを列挙定数の属性値から取得するために、Enum.valueOf()メソッドを使用できます。
列挙体クラスColorがあったとして、色の属性値を格納し、列挙体オブジェクトは次のように取得できます。
enum Color {
RED("红色"),
BLUE("蓝色"),
GREEN("绿色");
private String value;
Color(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
属性値からEnumオブジェクトを取得するには、Enum.valueOf()メソッドを使用できます。
String value = "蓝色";
Color color = Enum.valueOf(Color.class, value);
上記の例では、Enum.valueOf()メソッドは、列挙型のClassオブジェクトとフィールド値の2つのパラメータを受け取ります。フィールド値に一致する列挙オブジェクトを返します。一致する列挙オブジェクトが見つからない場合、IllegalArgumentException例外がスローされます。
注意事項:
- 属性値は、大文字小文字の違いも含め、Enum 定数の属性値と完全に一致している必要があります。
- Enum.valueOf()メソッドは例外をスローするため、あらかじめtry – catchブロックで例外処理をしておいたほうがよい。
お役に立てば幸いです。