The reflection of Java language (3)
在远程方法调用中也经常使用到java的反射机制,一下举个远程方法调用的例子,假定在SimpleServer 服务器端创建了一个HelloServiceImpl对象,它具有getTime()和echo()方法。HelloServiceImpl类实现了HelloService接口。如例下例所示分别是HelloService接口和HelloServiceImpl类的代码:
?
?SimpleClient 调用SimpleServer 端的HelloServiceImpl 对象的echo()方法的流程如下:
?
(1)SimpleClient 创建一个Call 对象,它包含了调用HelloService 接口的echo()方法的信息。
?
(2)SimpleClient通过对象输出流把Call对象发送给SimpleServer。
?
(3)SimpleServer 通过对象输入流读取Call 对象,运用反射机制调用HelloServiceImpl对象的echo()方法,把echo()方法的执行结果保存到Call对象中。
?
(4)SimpleServer 通过对象输出流把包含了方法执行结果的Call 对象发送给SimpleClient。
?
(5)SimpleClient通过对象输入流读取Call对象,从中获得方法执行结果。如下例所示分别是SimpleServer 和SimpleClient 的源程序。
?
?
?import java.lang.reflect.Method;