由于有两个不同的实体要共用一个适配器,所以将它们共同的字段抽取到父类中,然后让这两个不同的实体去继承。从服务器拿到数据后使用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:去掉子类中相同的字段