Data转Model的类型擦除问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Data转Model的类型擦除问题相关的知识,希望对你有一定的参考价值。

假如B类继承A类,数据中有B类,把B类转Data后存入,再取出。由于Model声明的类型是A,那转出来的也是A类型,这样数据就丢失了一部分。

或者存入的是范型集合数据,存入再取出也会发生类型擦除。

原因在于对类对象进行序列化和反序列化时,很多第三方库只是单纯以Model声明的类型为准,没有处理类型擦除问题。

解决问题当然很简单,只要把真实的类类型也保存进去就可以了。比如Gson借助TypeToken获取真实类型。

这里做个笔记免得以后踩这个坑。

以上是关于Data转Model的类型擦除问题的主要内容,如果未能解决你的问题,请参考以下文章

Java泛型:类型擦除

Java 泛型类型擦除:何时以及发生啥?

关于Java泛型的类型擦除机制问题求教

swift类型擦除的定义-swift的类型擦除只是一个类型高低阶转换的游戏。

泛型中的类型擦除

Swift 类型擦除