我想使用Google Gson库来(de)序列化具有参数化成员字段的参数化类型。
该课程如下:
public class Foo<T>{
List<T> bar;
}
我该怎么做?
我尝试使用TypeToken
,如此:
Type type = new TypeToken<Foo<String>>() {}.getType();
gson.fromJson<Foo<String>>(json, type);
这会引发IllegalStateException
答案 0 :(得分:0)
这篇文章可能会对您有所帮助:Deserializing Generic Types with GSON
TLDR,我为你的课试了一下,你可以使用这段代码反序列化Foo:
GsonBuilder gson = new GsonBuilder();
String json = "{\"bar\":[\"thing1\",\"thing2\"]}";
Foo deserFoo = gson.create().fromJson(json, Foo.class);
System.out.println(deserFoo.bar);
输出[thing1,thing2]