问题
最近在缓存网络到磁盘数据的时候,发生报错: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;