Сериализация классов Singleton во время связи RMI

Пока я объяснял метод readResolve, во многих ссылках объясняется, что этот метод будет полезен для гарантии одноэлементного свойства, когда одноэлементный класс десериализуется, а объект этого класса сериализуется и передается через RMI.

Теперь мой вопрос: когда происходит вызов RMI, объект класса Singleton будет транспортироваться через другую JVM (с другим загрузчиком классов), поэтому после десериализации у нас будет еще один экземпляр класса singleton (в другой JVM). Я прав ?

Итак, в контексте вызовов RMI, какая польза от реализации метода readResolve?


person KBR    schedule 04.10.2013    source источник


Ответы (1)


Так что, если вы отправите его еще раз, он будет преобразован в тот, который уже есть. Что, вероятно, будет противоречить вашим намерениям. Не путайте себя, используя синглтоны в RMI.

person user207421    schedule 04.10.2013
comment
То есть вы хотите сказать, что readResolve гарантирует, что одноэлементное свойство поддерживается в одной JVM? если метод readResolve не находится в этом классе, каждый раз, когда мы выполняем десериализацию на клиенте RMI, он будет создавать другой экземпляр. Я прав ? - person KBR; 05.10.2013
comment
Это то, что я сказал. Я не люблю эту игру "так ты хочешь сказать". - person user207421; 06.10.2013