(存在疑问:为什么要用代理类封装才行?)我回答一下我认为的原因:Proxy类实现了java.io.Serializable接口,远端接收到的时候会反序列化必须要实现此接口。
后面那块写成这样也是可以正常执行的:
Proxy proxyEvalObject = (Proxy) Proxy.newProxyInstance(Remote.class.getClassLoader(), new Class[] { Remote.class }, evalObject);
System.out.println(proxyEvalObject.getClass());//class com.sun.proxy.$Proxy0
Registry registry = LocateRegistry.createRegistry(3333);
Registry registry_remote = LocateRegistry.getRegistry("127.0.0.1", 3333);
registry_remote.bind("HelloRegistry", (Remote) proxyEvalObject);
System.out.println("rmi start at 3333");