java反射机制的作用 及其它的好处

来源:百度知道 编辑:UC知道 时间:2024/07/07 15:39:45
如题!大家可以来探讨下

反射其实就是程序能够自检查自身信息。就像程序会照镜子反光看自己。

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

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

反射给Java带来了一些动态性。不过虽然很好,但毕竟还是有一定局限性的。另外ASM,cglib使用还是不放便。因此一些纯动态语言现在是一个重要发展趋势,比如ruby,python等,程序很容易动态生成。

java反射机制能够知道类名而不实例化对象的状态下,获得对象的属性或调用方法。一般都是在配置文件中才用的。hibernate的映射文件,spring的配置文件都是通过反射做的。

java程序在运行过程中,很多类中的方法,不是一开始就全部要执行,如果我们在程序运行过程中想动态灵活的执行某个类中的方法时,用反射机制可以实现
例子:
------------------------------------------------类一-----------------------------------------------------------------
package com.sunyard.reflect;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ReflectTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-genera