我一直在通过一个非常简单的示例来设置远程方法调用应用程序,并且在通过客户端代码时,我无法理解一个代码,如下所示.当然,我的知识缺口,因为我虽然界面不能有对象,除非你使用匿名内部类.所以在下面的代码中我们是如何创建远程接口的对象的.如果我不得不猜测,对我来说似乎是某种类型的铸造.
import java.rmi.*;
public class HelloClient {
public static void main(String args[]) {
try {
if (args.length < 0) {
System.err.println("usage: java HelloClient string …\n");
System.exit(1);
}
HelloInterface hello = (HelloInterface)Naming.lookup("//localhost/Hello");
Run Code Online (Sandbox Code Playgroud)
最后一行是我无法理解(HelloInterface)部分究竟发生了什么?
HelloInterface hello = (HelloInterface)Naming.lookup("//localhost/Hello");
Run Code Online (Sandbox Code Playgroud)
Naming.lookup()调用检查在localhost中运行的RMI注册表,以获取名为"Hello"的绑定.我认为除非你使用匿名内部类,否则接口不能有对象.
我不知道你在这里谈论什么.任何类都可以实现接口.这是相当基本的.
所以在下面的代码中我们是如何创建远程接口的对象的
我们没有.我们将它作为来自注册表的返回值,它由服务器放置.
如果我不得不猜测,对我来说似乎是某种类型的铸造.
无需猜测.这正是它的本质.只有一种类型的类型转换,这就是你编写它的方式.这也是相当基本的.