Java的。反序列化Java通用对象的最佳过程?

时间:2010-06-11 17:56:44

标签: java generics serialization

使用本机Java序列化存储和检索ArrayList<String>等通用对象的最佳过程是什么?

编辑:澄清。当我序列化ArrayList<String>类型的对象时,我想反序列化为相同类型的对象。但是,我知道无法在不引起警告的情况下强制退回此通用对象。

2 个答案:

答案 0 :(得分:5)

认为我理解这个问题,尽管可以不那么含糊地说明。当你反序列化时,你可以强制转换为原始ArrayList,只要这不会抛出ClassCastException你知道你得到了那个部分;但是如果你进一步转向ArrayList<String>(或List<String>),你会收到警告,告知这不安全。该集合可能包含整数,并且单独使用此强制转换将无法捕获它。

通常最好的做法是将您的序列化和反序列化代码小心地相互匹配,并抑制产生的警告。

答案 1 :(得分:1)

我认为你将会遇到不安全的强制转换警告 - 序列化只能处理最终存在于实际字节码中的对象的特征,并且(据我所知)编译器会删除泛型。反序列化机制的内容对通用参数没有任何了解。