81,122
社区成员




可是通过类对象以及反射机制调用方法不是都应该是“对象名.getClass()”获得class对象之后再找到方法再invoke吗?这里也没有getClass呀。。。 [quote=引用 2 楼 hqshaozhu 的回复:] 因为el表达式在获取值时都是只提供对象的属性名,比如request.name,但是JavaBean的属性都是private的,外部没法直接访问,所有你直接request.name肯定是无法直接获取对象的,所以就需要调用getName()方法,那么当给你一个对象,你如何调用这个对象的某一个方法呢?显然是使用反射机制,通过Class获取指定名称的Method,然后调用Mthod的invoke()方法执行对应的Method获取返回值。
可是通过类对象以及反射机制调用方法不是都应该是“对象名.getClass()”获得class对象之后再找到方法再invoke吗?这里也没有getClass呀。。。 因为el表达式在获取值时都是只提供对象的属性名,比如request.name,但是JavaBean的属性都是private的,外部没法直接访问,所有你直接request.name肯定是无法直接获取对象的,所以就需要调用getName()方法,那么当给你一个对象,你如何调用这个对象的某一个方法呢?显然是使用反射机制,通过Class获取指定名称的Method,然后调用Mthod的invoke()方法执行对应的Method获取返回值。