gpt4 book ai didi

java - 在序列化代理模式中如何调用代理类的 readResolve() 方法?

转载 作者:行者123 更新时间:2023-12-01 14:08:49 27 4
gpt4 key购买 nike

我正在研究序列化代理模式。它基本上是说有一个代理类,应该将其声明为我们想要序列化的封闭类的静态嵌套类。因此,基本思想是代理保护封闭的可序列化类免受序列化的危险。

但是,我实际上并不清楚其实现。为什么我们在外部类上调用writeReplace(),在代理类上调用readResolve()?由于代理类就像外部类的静态成员,它如何被序列化?如果它没有被序列化,那么在反序列化期间如何在代理上调用 readResolve() ?

我确信我在这里遗漏了一些基本的东西。有人可以透露一些信息吗?

最佳答案

查看 Serializable 的文档.

writeReplace()readResolve() 是序列化引擎调用的特殊方法。

writeReplace() 用代理替换正在序列化的对象,readResolve() 用实际对象替换反序列化的代理。

序列化代理类不必是要序列化的类的静态嵌套类。这只是为了更好地组织代码的约定。

关于java - 在序列化代理模式中如何调用代理类的 readResolve() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18694326/

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