java.lang.IllegalArgumentException: A declares multiple JSON fields named DatingType

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值