com.google.gson.internal.LinkedTreeMap cannot be cast to XXXBean

问题

最近在缓存网络到磁盘数据的时候,发生报错:com.google.gson.internal.LinkedTreeMap cannot be cast to XXXBean

比较纳闷,自己的写法如下:

BaseEntity<T> tBaseEntity = new Gson().fromJson(o, new TypeToken<BaseEntity<T>>() {}.getType());

发现一直报错,次哦,搞不定,查资料;

解决:

BaseEntity<T> tBaseEntity = new Gson().fromJson(o, new TypeToken<BaseEntity<XXXBean>>() {}.getType());

我知道是泛型擦除导致的,重点是我把原来的T 变为XXXBean 实体,TypeToken 中泛型难道不能再套一个泛型了,具体细节先记录一下,后续有研究进展了再更新;

安利一个Android 缓存数据到磁盘的一个库,自己写的支持多实例缓存超时擦除功能;

项目地址:https://github.com/DovSnier/cacheKit;

wiki 介绍:https://github.com/DovSnier/cacheKit/wiki/cache-v0.2.1

发布了66 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/DovSnier/article/details/102799591
今日推荐