简谈 PortableRemoteObject.narrow方法
PortableRemoteObject.narrow方法的目的是CORBA协作,但是CORBA很难使用,所以在EJB中添加了对CORBA的支持,所以在使用home接口以前需要用PortableRemoteObject.narrow方法进行处理。
lookup一个远程的对象时,返回对象的引用(Object)其实并不明确,而不清楚是否是我们所需要的特定的类的对象(EjbHome),所以用narrow方法,将lookup的对象和EjbHome.class作为参数传入,检查是否匹配,再转换成需要的对象类型。
本地lookup一个对象的时候,因为已经在本地JVM注册,所以知道lookup的对象是什么类型的引用,从而直接转型,而不用narrow方法进行检查。