2010-09-29 83 views
4

我有一个简单的数据结构,它被序列化和反序列化。 反序列化后,我希望数据结构本身进行后续处理步骤。在我们的例子中,它应该简单地调用它所包含的所有字符串的String.intern()。java - 在自定义反序列化中调用标准反序列化


抢先回答无关的问题:

你为什么不只是这样做后,通常反序列化对象?

  1. 此对象序列化/反序列化在很多地方
  2. 这个数据结构是反序列化较大的物体,其是序列化/的一部分,所以你将不得不浏览任何封装对象反序列化后以及
  3. 使用该框架的其他developpers可能不知道或忘记这一步,并会导致一个巨大的错误磁铁
  4. 这将是丑陋

为什么你在使用中的String.intern()第一个地方?

出于性能原因。我们需要做大量的文本处理和计算。


换句话说,在:

public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException; 

有没有办法来调用内部的默认/标准反序列化? (所以我们可以加上我们之后的一小步)

谢谢!

阿尔诺

回答

4

是 - in.defaultReadObject()

但你不得不使用readObject(..)没有readExternal(..

请注意,如果你使用Externalizable,你是你自己。您可以使用Serializable并部分定制输出。

+0

感谢您的快速回答,我马上试试! – dagnelies 2010-09-29 10:30:15