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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓康 中级黑马   /  2012-4-4 21:44  /  1579 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看基础加强 视频  中提高一个 叫反射的概念  
只是知道     就是把java类中各个成分映射成相对应的java类

看了视频中的反射 代码又长又麻烦。。。
但是实际中反射 的作用是什么呢?
哪位同学帮我举个简单的应用例子。。
让我了解下 反射的简单流程  和应用。。。。。。。


比如说   我们为什么要用 反射 ?什么情况下需要用反射。。。。。
反射  比直接 调用  有好优点。。

4 个回复

倒序浏览
在框架中 框架不知道 创建那个类的对象 通过配置文件 。反射可以去修该这个配置文件。到底要创建那个类的对象
回复 使用道具 举报
通过反射可以调用你以后定义的类的功能,  比如反射调用一个类的main函数   
     可以把这个main函数所在的类名 当做一个参数 传递    使用反射的方法直接调用这个类的main方法    而这个类可以在
    写反射之前存在  或者以后再出现 也可以的  只需要把需要反射调用的main‘方法的所属的类  的 类名  传值就可以
  还有也可以通过加载配置文件的的信息来使用反射  好处是修改代码的功能很简单  只需要把配置信息改一下就可以
  在框架中用的很多  这个还没学到 只听老师重点说提过
回复 使用道具 举报
  JDBC加载驱动,就用到反射,比如Spring的IOC就用了反射,本来对象需要自己去创建,用了IOC就把对象交给容器,由容器去帮你创建。
反射其实就是程序能够自检查自身信息。就像程序会照镜子反光看自己。
在程序中可以检查某个类中的方法属性等信息,并且能够动态调用。
这样可以写出很灵活的程序。
比如要把一个对象中的数据copy到另外一个对象中,规则是属性名相同就copy,
就可以用反射来做,不需要指定每个属性的名字,只要动态从类中取得信息,
再判断属性名是否相同即可
反射的缺点:
1,丧失了编译时类型检查的好处
2,执行反射访问所需代码笨拙冗长
3,性能损失
回复 使用道具 举报
反射其实就是程序能够自检查自身信息。就像程序会照镜子反光看自己。

在程序中可以检查某个类中的方法属性等信息,并且能够动态调用。
这样可以写出很灵活的程序。
比如要把一个对象中的数据copy到另外一个对象中,规则是属性名相同就copy,
就可以用反射来做,不需要指定每个属性的名字,只要动态从类中取得信息,
再判断属性名是否相同即可。当然应用还有很多。

反射可以结合Java的字节码,使用ASM和cglib等库,还能动态生成类。
hibernate的延迟载入,spring的AOP都是这么实现的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马