【发布时间】:2010-09-29 10:18:45
【问题描述】:
我有一个序列化和反序列化的简单数据结构。 在反序列化时,我希望数据结构本身进行后续处理步骤。在我们的例子中,它应该简单地在它包含的所有字符串上调用 String.intern()。
对无关问题的抢先回答:
您为什么不在正常反序列化对象后简单地执行此操作?
- 这个对象在很多地方都被序列化/反序列化了
- 此数据结构是已序列化/反序列化的较大对象的一部分,因此您还必须在反序列化后浏览任何封装对象
- 使用该框架的其他开发人员可能不知道或忘记了这一步,并且会产生巨大的错误磁铁
- 会很丑
你为什么首先使用 String.intern()?
出于性能原因。我们进行大量的文本处理和计算需要这个。
换句话说,在:
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
有没有办法调用内部的默认/标准反序列化? (这样我们就可以在之后添加我们的小步骤)
谢谢!
阿诺
【问题讨论】:
标签: java serialization