enum
Java の はクラスであり、コンパイラは静的メソッドを追加しますvalueOf(String name)
。あなたが持っている場合:
enum MyEnum {
ONE(1.0), TWO(2.0), THREE(3.0);
private double myDouble;
MyEnum(double d) {
myDouble = d;
}
public double getDouble() {
return myDouble;
}
}
あなたは言うことができます:
MyEnum e = MyEnum.valueOf("ONE");
assert(e.equals(MyEnum.ONE));
System.out.println(e.getDouble());
Java 用のより一般的な JSON パーサーは、列挙型を適切に処理します。Gson の例を次に示します。
public class App
{
public static void main(String[] args)
{
// Array containing your enum constants
String json = "[\"ONE\",\"TWO\",\"THREE\"]";
Type t = new TypeToken<Collection<MyEnum>>(){}.getType();
Collection<MyEnum> c = new Gson().fromJson(json, t);
for (MyEnum me : c)
{
System.out.println(me);
switch(me)
{
case ONE:
System.out.println("This is equal to MyEnum.ONE");
break;
case TWO:
System.out.println("This is equal to MyEnum.TWO");
break;
case THREE:
System.out.println("This is equal to MyEnum.THREE");
break;
}
System.out.println(me.getDouble());
}
}
}
出力:
ONE
これは MyEnum.ONE
1.0と同じです
TWO
これは MyEnum.TWO
2.0と同じです
THREE
これは MyEnum.THREE
3.0と同じです