【问题标题】:Serialization of Singleton Classes during RMI communcationRMI 通信期间单例类的序列化
【发布时间】:2013-10-04 19:24:34
【问题描述】:

虽然我正在阅读 readResolve 方法的解释,但很多参考资料都解释说,当单例类被反序列化而该类的对象被序列化并通过 RMI 传输时,该方法将有助于保证单例属性。

现在我的问题是,当 RMI 调用发生时,单例类对象将通过不同的 JVM(具有不同的类加载器)传输,因此在反序列化之后,我们将有另一个单例类实例(在不同的 JVM 中)。我说的对吗?

那么在 RMI 调用的上下文中,实现 readResolve 方法有什么用?

【问题讨论】:

    标签: java singleton deserialization rmi distributed-objects


    【解决方案1】:

    因此,如果您再次发送它它会解析为已经存在的那个。这可能与您的意图相反。不要在 RMI 中使用单例来迷惑自己。

    【讨论】:

    • 所以你的意思是说,readResolve 确保在单个 JVM 中维护单例属性?如果 readResolve 方法不在该类中,则每次我们在 RMI 客户端上进行反序列化时,它都会创建不同的实例。我说的对吗?
    • 我就是这么说的。我不喜欢这种“你的意思是说”的游戏。
    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多