问答详情
源自:4-6 如何支持 Kotlin 协程的 suspend 函数?

使用Kotlin的数据类,数据类存在泛型,Gson在反序列化报错问题?

http://img2.mukewang.com/611b80cb0001316a20201626.jpg

相关代码如上,学习了之前的GsonConvert的章节,我觉得,应该Kotlin的数据类没有无参构造器,使得GsonConvert在反序列化生成实例时采用了Unsafe,但是由于泛型擦除,Unsafe在生成BaseResponse实例时,并不知道data的类型,所以分配的内存大小与实际的对象所需的内存大小不一致,造成最终Gson反序列化失败,于是报错了。不知道我理解的对不对。但是具体的解决方案我还未找到,我查找的一些开源项目也都是直接使用确定类型,未使用泛型

提问者:13日术之 2021-08-17 17:34

个回答