次の列挙型があるとします。
public enum FooBar {
One, Two, Three
}
文字列の対応する列挙値を取得したいと思います。「Two」と言って、FooBar.Two を取得します。
Javaでこれを行うにはどうすればよいですか? Enum.ValueOf()
関係ないようです。
文字列「Two」があり、その値が必要です。
これを行うには、valueOf
たとえば使用します
MyEnum me = MyEnum.valueOf("Two");
また
MyEnum me = Enum.valueOf(MyEnum.class, "Two");
Enum.ValueOf() は関連していないようです。
それはまさにあなたが望むものであるようです。
どちらでも使用できます
String s = myEnum.toString();
また
String s = myEnum.name();
を使用toString()
して、任意のオブジェクトを文字列に変換できます。(その文字列が意味をなさないかどうかは、実装に依存します;)
次のコードを試してください:
enum FooBar
{
One,Two,Three;
}
public class EnumByName
{
public static void main(String stp[])
{
String names[] = {"One","Two","Three"};
for (String name : names)
{
FooBar fb = Enum.valueOf(FooBar.class,name);
System.out.println(fb);
}
}
}