2010-06-21 73 views
3

我无法找到明确的答案这个问题,所以我想我会问我在这里与我自己的具体例子:RMI:按价值或参考传递?

我正在创建一个多人游戏的垄断游戏。实际的垄断代码在服务器上运行,客户端本质上是一个访问和控制该代码的GUI。垄断博弈由一个叫做“银行”的类来控制。

说我在客户端的主()这样做:

Bank banker = server.getBank(); //gets the bank object from server 
bank.turn(); //moves the current player 

这会反过来调用()在服务器上或在它我的本地机器上复制银行对象?

更新:银行不实施远程。它是一个可序列化的对象。

回答

7

这取决于是否BankRemote或不是一个实例。如果是这样,那么它将通过引用传递(如果全部设置正确),否则它将被序列化并按值传递。

编辑:由于您的Bank类不是Remote,但Serializable,那么它会被复制和按值传递。

+1

还必须虽然出口。 – 2010-06-21 19:29:34

+0

@PartlyCloudy:确实是这样 – skaffman 2010-06-21 19:35:35

+1

右,所以我需要让银行远程执行,以便能够远程调用它的方法? – seadowg 2010-06-21 19:44:27

0

这取决于你如何编码它。

通常表示服务器侧对象的任何客户端对象简单地使与更新服务器侧对象的远程调用。客户端对象只不过是用于调用服务器的传输协议的外观。

如果你使用RMI,那么它将遵循这一原则。