java.lang.ClassCastException com.google.gson.internal.LinkedTreeMap ca

使用Retrofit请求数据,响应成功后返回的数据报错

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to kbean.mine.BankBean

打断点后,可以看到这里的响应数据里面的集合并不是想要的类型,而是LinkedTreeMap的集合。
这里写图片描述

下面是我的实体类的类型,可以推断出,Retrofit使用Gson解析时候并没有看出来MultiPageBean中的list集合是什么类型的。也就是并没有把ResponseListBean中的泛型T的实际的类型传递到内部类中。

public class ResponseListBean<T> extends ResponseBaseBean{
    private MultiPageBean data;

    public MultiPageBean getData() {
        return data;
    }

    public void setData(MultiPageBean data) {
        this.data = data;
    }

    public class MultiPageBean{
        int total;
        List<T> list;
        int pageNum;
        int pageSize;
        int pages;
        int size;

        public int getTotal() {
            return total;
        }

        public void setTotal(int total) {
            this.total = total;
        }

        public List<T> getList() {
            return list;
        }

        public void setList(List<T> list) {
            this.list = list;
        }

        public int getPageNum() {
            return pageNum;
        }

        public void setPageNum(int pageNum) {
            this.pageNum = pageNum;
        }

        public int getPageSize() {
            return pageSize;
        }

        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }

        public int getPages() {
            return pages;
        }

        public void setPages(int pages) {
            this.pages = pages;
        }

        public int getSize() {
            return size;
        }

        public void setSize(int size) {
            this.size = size;
        }
    }

}

下面是改造后的代码
这里写图片描述

也就是把实际类型传递到内部类中,这样就不会报错了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值