日期:2014-05-20  浏览次数:20615 次

菜鸟一枚JAVA反射的作用
JAVA反射的作用,有哪些好处啊

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

反射可以结合Java的字节码,使用ASM和cglib等库,还能动态生成类。
hibernate的延迟载入,spring的AOP都是这么实现的

反射给Java带来了一些动态性。不过虽然很好,但毕竟还是有一定局限性的。另外ASM,cglib使用还是不放便。因此一些纯动态语言现在是一个重要发展趋势,比如ruby,python等,程序很容易动态生成。
二、一般都是在配置文件中才用的。hibernate的映射文件,spring的配置文件都是通过反射做的。
------解决方案--------------------
没有java反射就没有,比如struts2,hibernate,spring等等各种框架。。。