黑马程序员技术交流社区

标题: JavaBean和内省反射 [打印本页]

作者: 李靖    时间: 2012-10-26 12:24
标题: JavaBean和内省反射
JavaBean中成员变量是私有的,通过公有的get方法set方法,就可以之间获取了,为什么还有那么麻烦的用反射机制呢
作者: 陈琦    时间: 2012-10-26 13:09
你写了一个类(框架)是提供给别人用的,但是你并不知道别人的类是什么名字,就无法直接使用,所以就需要使用反射。(个人不懂框架,老师这么讲的)
作者: 程杰    时间: 2012-10-26 13:16
SSH这三个框架就是 用反射原理写的。他不只是有想javabean中get,set得到数据那么简单。像Spring中的动态代理。生成对象不用你自己new ,这好像也应用了反射原理。
作者: 黑马杨锦喜    时间: 2012-10-26 13:23
因为你用到了内省操作,
传统的方法需要:"x"-->"X"--"getX"-->MethodGetX-->
使用内省操作可以减少步骤:
如:
PropertyDescriptor pd=new PropertyDescriptor(propertyName,pt1.getClass());//获得属性描述,这里用到了反射
Method methodGetX=pd.getReadMethod();//getX
Object retValue=methodGetX.invoke(pt1);
System.out.println(retValue);

PS:将 Java 的反射以及内省应用到程序设计中去可以大大的提供程序的智能化和可扩展性,支持动态的功能扩展,也就是说程序不重新启动但是可以自动加载新的功能。理解反射不容易啊,我都是困惑中学习在学习的。
作者: 鲁中需    时间: 2012-10-26 13:36
在java基础加强课程中,张老师一遍遍强调:反射是做框架用的,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,像ssh框架。

比如:我做房子卖给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入进我提供的框架中。框架与工具类有区别,工具类被用户的类调用,而框架则是调用用户提供的类。

框架要解决的核心问题
我在写框架(房子)时,你这个用户可能还在上小学,还不会写程序呢?我写的框架程序怎样能调用到你以后写的类(门窗)呢?
因为在写才程序时无法知道要被调用的类名,所以,在程序中无法直接new 某个类的实例对象了,而要用反射方式来做。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2