gpt4 book ai didi

java - 在自定义反序列化中调用标准反序列化

转载 作者:搜寻专家 更新时间:2023-11-01 02:54:46 27 4
gpt4 key购买 nike

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


先发制人地回答不相关的问题:

为什么不在正常反序列化对象后简单地执行此操作?

  1. 这个对象在很多地方被序列化/反序列化
  2. 此数据结构是已序列化/反序列化的较大对象的一部分,因此您还必须在反序列化后浏览任何封装对象
  3. 使用该框架的其他开发人员可能不知道或忘记了这一步,这会导致大量的漏洞
  4. 会很丑

为什么首先使用 String.intern()?

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


换句话说,在:

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

有没有办法在里面调用默认/标准的反序列化? (这样我们就可以在之后添加我们的小步骤)

谢谢!

阿诺

最佳答案

是 - in.defaultReadObject()

但是你必须使用 readObject(..) 而不是 readExternal(..)

请注意,如果您使用 Externalizable,您就得靠自己了。您可以使用 Serializable并自定义部分输出。

关于java - 在自定义反序列化中调用标准反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com