序列化java在自定义反序列化中调用标准反序列化
我有一个简单的数据结构,它是序列化和反序列化的。 在反序列化时,我希望数据结构本身进行后续处理步骤。在我们的例子中,它应该只调用String。它包含的所有字符串上的intern()
对无关问题的抢先回答:
为什么不在通常情况下反序列化对象后执行此操作
- 这个对象在很多地方被序列化/反序列化
- 此数据结构是序列化/反序列化的较大对象的一部分,因此在反序列化之后,您还必须浏览任何封装对象
- 其他使用该框架的开发人员可能没有意识到或忘记这一步,这将导致一个巨大的bug磁铁
- 那会很难看
你为什么用字符串。实习生()首先
出于性能原因。我们做大量的文本处理和计算需要这样做
换句话说,在:
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
是否有一种方法可以在内部调用默认/标准反序列化?(这样我们就可以在后面加上一小步)
谢谢
阿诺
# 1 楼答案
是
in.defaultReadObject()
但是你必须使用
readObject(..)
而不是readExternal(..
)请注意,如果您使用} 并部分自定义输出
Externalizable
,您就只能靠自己了。您可以使用^{