java - 在自定义反序列化中调用标准反序列化
问题描述:
我有一个简单的数据结构,它被序列化和反序列化。 反序列化后,我希望数据结构本身进行后续处理步骤。在我们的例子中,它应该简单地调用它所包含的所有字符串的String.intern()。java - 在自定义反序列化中调用标准反序列化
抢先回答无关的问题:
你为什么不只是这样做后,通常反序列化对象?
- 此对象序列化/反序列化在很多地方
- 这个数据结构是反序列化较大的物体,其是序列化/的一部分,所以你将不得不浏览任何封装对象反序列化后以及
- 使用该框架的其他developpers可能不知道或忘记这一步,并会导致一个巨大的错误磁铁
- 这将是丑陋
为什么你在使用中的String.intern()第一个地方?
出于性能原因。我们需要做大量的文本处理和计算。
换句话说,在:
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
有没有办法来调用内部的默认/标准反序列化? (所以我们可以加上我们之后的一小步)
谢谢!
阿尔诺
答
是 - in.defaultReadObject()
。
但你不得不使用readObject(..)
没有readExternal(..
)
请注意,如果你使用Externalizable
,你是你自己。您可以使用Serializable
并部分定制输出。
感谢您的快速回答,我马上试试! – dagnelies 2010-09-29 10:30:15