【发布时间】:2015-02-18 03:50:58
【问题描述】:
考虑下面的代码
public class MyClass {
public static enum MyEnum {
ENUM_A("This is a"), ENUM_B("This is b");
private String desc;
private MyEnum(String desc) { this.desc = desc; }
public String getDesc() { return desc; }
}
private String someString;
private Integer someInteger;
public MyClass(String string, Integer integer) {
this.someString = string;
this.someInteger = integer;
}
}
我想使用一个 json 文件来初始化 MyEnum 的枚举的 desc。我首先打印出 MyClass 实例的 json 字符串,但该字符串与 MyEnum 无关,只有 someString 和 的值一些整数。显然 MyEnum 没有被反序列化,所以我什至不知道 MyEnum 是否可以被 gson 序列化。
您能否提供示例,说明如何在通过 MyClass c = gson.fromJson(string, MyClass.class) 创建 MyClass 实例时为 MyEnum 的枚举初始化 desc ),或者直接通过 MyEnum e = gson.fromJson(string, MyEnum.class) 初始化MyEnum。
由于 MyEnum 是静态的,运行上述代码后会发生什么?使用 MyEnum 的其他代码现在是否选择了新的 desc?
【问题讨论】: