是否有一种简单、优雅且巧妙的方法可以在不同的 RMI 实例之间移动对象?
目前,我将通过克隆接收 RMI 服务器中的对象,然后销毁发送 RMI 客户端中的原始对象(或者从 RMI 服务器 A 移动到 RMI 服务器 B 时的其他方式)来执行此任务。
我想,我还必须克隆并销毁该对象的所有对象?
最佳答案
如果您的对象实现“远程”接口(interface),则它是通过引用传递。
如果您的对象没有实现“远程”接口(interface),则它是按值传递。
您必须根据对象的类型做出决定。
在 RMI 中传递对象
远程方法的参数或返回值几乎可以是任何类型,包括本地对象、远程对象和原始数据类型。
控制参数和返回值传递方式的规则如下:
远程对象本质上是通过引用传递的。远程对象引用是一个 stub ,它是一个客户端代理,它实现了远程对象实现的完整远程接口(interface)集。
本地对象使用对象序列化通过副本传递。默认情况下,将复制除标记为静态或 transient 的字段之外的所有字段。可以逐类覆盖默认序列化行为。
关于java - 如何通过RMI移动对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32825758/