让我们说,我有一个通常叫做Person
的POJO。现在,由于类型擦除,ArrayList<Person>
的实例在运行时将具有类型ArrayList
。如果这个实例通过像Gson这样的库进行序列化/反序列化,那么desirialized对象不是ArrayList<Person>
,除非我们特别提供类型标记。
现在,这是问题。如果我创建另一个类,会发生什么(比如Persons
)如下:如果我从泛型类派生非泛型类,会发生什么类型?
public class Persons extends ArrayList<Person> {
}
将类型信息被保存在这里?反序列化机制能够推断出类型确实是ArrayList<Person>
而不是原始类型ArrayList
?
我认为desirialization会给你类型信息,你可以直接转换为'Person' – Babel
尝试序列化和反序列化它,也许? –
我不知道我理解你的问题。如果反序列化一个Persons对象,那么它不是它的类Persons而不是ArrayList或ArrayList? –
sprinter