本文主要是介绍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;}}}
下面是改造后的代码
也就是把实际类型传递到内部类中,这样就不会报错了。
这篇关于java.lang.ClassCastException com.google.gson.internal.LinkedTreeMap ca的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!