A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李靖 中级黑马   /  2012-10-26 12:24  /  1648 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JavaBean中成员变量是私有的,通过公有的get方法set方法,就可以之间获取了,为什么还有那么麻烦的用反射机制呢

4 个回复

倒序浏览
你写了一个类(框架)是提供给别人用的,但是你并不知道别人的类是什么名字,就无法直接使用,所以就需要使用反射。(个人不懂框架,老师这么讲的)
回复 使用道具 举报
SSH这三个框架就是 用反射原理写的。他不只是有想javabean中get,set得到数据那么简单。像Spring中的动态代理。生成对象不用你自己new ,这好像也应用了反射原理。
回复 使用道具 举报
因为你用到了内省操作,
传统的方法需要:"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 的反射以及内省应用到程序设计中去可以大大的提供程序的智能化和可扩展性,支持动态的功能扩展,也就是说程序不重新启动但是可以自动加载新的功能。理解反射不容易啊,我都是困惑中学习在学习的。
回复 使用道具 举报
在java基础加强课程中,张老师一遍遍强调:反射是做框架用的,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,像ssh框架。

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

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