Java的反射机制是在程序运行时,能够完全知道任何一个类,及其它的属性和方法,并且能够任意调用一个对象的属性和方法。这种运行时的动态获取就是Java的反射机制。其实这也是Java是动态语言的一个象征。
用一句话来概括反射就是:加载一个运行时才知道的类以及它的完整内部结构。
-----------------------------------------------------------------
我们为什么要用Java的反射机制呢?
我认为有两种:
第一种:反射的目的就是为了扩展未知的应用。比如你写了一个程序,这个程序定义了一些接口,只要实现了这些接口的dll都可以作为插件来插入到这个程序中。那么怎么实现呢?就可以通过反射来实现。就是把dll加载进内存,然后通过反射的方式来调用dll中的方法。
第二种:在编码阶段不知道那个类名,要在运行期从配置文件读取类名, 这时候就没有办法硬编码new ClassName(),而必须用到反射才能创建这个对象。
-----------------------------------------------------------------
1) Member成员是一种接口,反映有关单个成员(字段或方法)或构造方法的标识信息
2) InvocationHandler是代理实例的调用处理程序 实现的接口(这个接口的具体用法等到java反射机制剖析4着重介绍)
3) Method提供一个类的方法的信息以及访问类的方法的接口。
-----------------------------------------------------------------
提供这样一个手段,通过传入任一对象 将对象内部的数据提取出来,并控制作,可修改对象内的数据
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
参考:http://blog.csdn.net/lfsf802/article/details/7239652