【发布时间】:2011-02-12 00:31:09
【问题描述】:
RMI(远程方法调用)仅适用于 Java 对象方法。为了使对象可远程化,必须将其导出以生成存根、绑定到 rmiregistry 等等。
在用户端,必须查找对象等等。为了实现Java对象的RMI,需要整个实例化过程。
但是为什么不能远程调用 Java 静态方法呢? Java 类/静态方法不可远程是否存在对语义至关重要的原因?
【问题讨论】:
RMI(远程方法调用)仅适用于 Java 对象方法。为了使对象可远程化,必须将其导出以生成存根、绑定到 rmiregistry 等等。
在用户端,必须查找对象等等。为了实现Java对象的RMI,需要整个实例化过程。
但是为什么不能远程调用 Java 静态方法呢? Java 类/静态方法不可远程是否存在对语义至关重要的原因?
【问题讨论】:
RMI 使用 Java 接口来描述远程操作。静态方法不能通过接口表示,因此不能远程。它就是这样设计的。
如果您需要通过 RMI 访问静态方法,则需要将它们包装在 可以导出的东西中。
【讨论】:
Java 接口不支持静态方法,并且要使用 RMI 调用对象,它必须实现和接口,然后在 RMI 注册表中作为服务公开。
【讨论】: