Java RMI实例化远程对象

Java RMI实例化远程对象,java,rmi,Java,Rmi,我有一个RMI服务器导出一个“管理器”类。RMI客户端连接到服务器,并检索“Manager”类的实例。然后,我调用“Manager.createBox()”,这将创建一个框,然后调用“Manager.getBox(0)”来检索该框 现在,如果我对刚检索到的“框”进行任何更改,修改它,然后再次调用“Manager.getBox(0)”,我将再次获得原始框,而不进行任何更改。。如何在客户端“提交”我刚刚对Box所做的更改?或者,是否需要向管理器添加一个方法?如果Box是一个简单的可序列化类,那么它的

我有一个RMI服务器导出一个“管理器”类。RMI客户端连接到服务器,并检索“Manager”类的实例。然后,我调用“Manager.createBox()”,这将创建一个框,然后调用“Manager.getBox(0)”来检索该框


现在,如果我对刚检索到的“框”进行任何更改,修改它,然后再次调用“Manager.getBox(0)”,我将再次获得原始框,而不进行任何更改。。如何在客户端“提交”我刚刚对Box所做的更改?或者,是否需要向管理器添加一个方法?

如果Box是一个简单的可序列化类,那么它的状态就是简单地序列化、在线发送,并在调用getBox时在客户端反序列化。因此,客户机修改的是框的副本,而不是原始框

如果希望修改后的框位于服务器上,则将其发送回服务器(
manager.modifyBox(box)
),或将该框设置为远程对象(通过将其设置为远程接口框,由扩展UnicastRemoteObject的BoxImpl具体类实现)