由於有兩個不同的實體要共用一個適配器,所以將它們共同的字段抽取到父類中,然後讓這兩個不同的實體去繼承。從服務器拿到數據後使用Gson進行解析,但是一運行就崩潰了。由於本人電腦不知爲何從不報崩潰日誌,導致我對崩潰原因也是無從得知,最後在StackOverflow找到了幾種解決方法,這裏我總結一下:
子類:
public class A extends B implements Serializable{
private int Headreview;
private int Status;
private String DatingType;
}
父類:
public class B implements Serializable{
private String DatingType;
}
原因:
gson查找對象的私有字段序列化時,父類的私有字段的含義都包括在內,並且當你領域具有相同的名稱它拋出一個錯誤:java.lang.IllegalArgumentException:A(子類類名)declares
multiple JSON fields named DatingType(重複的字段)
解決方法1:在父類的相同字段添加關鍵字transient
public class B implements Serializable{
private transient String DatingType;
}
解決方法2:去掉子類中相同的字段