0
實施例類:爪哇GSON - 序列化&反序列化類泛型類型爲List
public class A
{
String Name;
List<B> GenericsList;
//Getters & Setters & Constructors
}
public class B
{
String Title;
//Getters & Setters & Constructors
}
public class C extends B
{
String Something;
//Getters & Setters & Constructors
}
如果我序列類A的一個實例是這樣的:
List<B> bList = new ArrayList<>();
C bObj = new C("name", "something text");
bList.add(bObj);
A aObj = new A("name", bList);
String serialized = new Gson.toJson(aObj);
A deserializedA = new Gson.fromJson(serialized);
我失去的C亞型在列表。 我知道如何解決這一點,如果它只是一個列表序列化是這樣的:
Gson gson = new Gson();
List<B> bList = new ArrayList<>();
Type bType = new TypeToken<List<B>>() {}.getType();
gson.toJson(bList, bType);
gson.fromJson(json, bType);
的問題是,我的泛型列表是與其他參數的對象內。我該怎麼做呢?
編輯1: 也許我不清楚具體問題。
當我進行序列化和反序列化創建的對象上沒有錯誤而是獲得這樣的: 對象A: 名稱=「名稱」 GenericsList = {對象C}
我得到: 對象A: Name =「name」 GenericsList = {Object B}
我失去了子類型C的細節。
您可以發佈與預期輸出一個完整的例子嗎?請詳細瞭解您所看到的行爲以及您所問的內容。 – 2015-03-02 16:24:21
您應該閱讀[與Gson多態性](http://stackoverflow.com/questions/5800433/polymorphism-with-gson)。 – 2015-03-02 16:32:42
沒有幫助。問題是,我想要反序列化的對象中有一個泛型類型列表。找不到具體的答案.... – Meh 2015-03-02 17:08:40