Может быть.
Вы могли бы определенно пометить поле accountService
как переходное, что действительно помешало бы его сериализации и отправке через RMI (или, точнее, , если не удалось сериализовать и выдать исключение). Однако на этом этапе AccountRmiServiceImpl
, восстановленный на другой стороне, будет иметь нулевое значение для accountService, что без каких-либо других изменений почти наверняка приведет к NullPointerException
позже.
Если ваш AccountServiceImpl
не сериализуем (в смысле Java), , но вы все еще можете создать его экземпляр на основе некоторой простой сериализуемой информации, то вам повезло. Вы можете реализовать сериализацию самостоятельно, используя методы writeObject / readObject или writeReplace / readResolve (см. Сериализуемый ).
Если экземпляры AccountServiceImpl
не сериализуемы в каком-либо смысле слова (например, анонимный внутренний класс со встроенной логикой, а также ссылки на конечные локальные переменные во внешней области видимости), то нет способа отправить это через. Какой объект будет воссоздан на другой стороне? Если вы оказались в такой ситуации, вам нужно провести рефакторинг своего кода, чтобы сделать класс (ы) сериализуемыми.