您的位置:首页 > 编程语言 > Java开发

Java反射机制的学习

2016-07-24 12:00 204 查看
    反射,reflection,听其名就像照镜子一样,可以看见自己也可以看见别人的每一部分。形象比喻就是你偷人家的东西(private之类的属性,方法),并且在逃跑的时候才告诉你(在运行时获取类的信息)。

 

    反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来(C或者C++语言中很不存在这个特性)。一个常见的例子是在JavaBean中,一些组件可以通过一个构造器来操作。这个构造器就是用的反射在动态加载的时候来获取的java中类的属性的。

 

     java语言编译完之后,并不是机器码,他还包含符号信息,虚拟机(JVM)可以可以根据这些信息找到一个类,一个方法,等等。所有这就是为什么会有类反射的原因了。

 

    Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method( 其中class代表的是类对 象,Constructor-类的构造器对象,Field-类的属性对象,Method-类的方法对象)。通过这四个对象我们可以粗略的看到一个类的各个组成部分。比如其中 Class:程序运行时,java运行时系统会对所有的对象进行运行时类型的处理。这项信息记录了每个对象所属的类,虚拟机通常使用运行时类型信息选择正
确的方法来执行。但是这些信息我们怎么得到啊,就要借助于class类对象了啊。在Object类中定义了getClass()方法。我们可以通过这个方法获得指定对象的类对象。然后我们通过分析这个对象就可以得到我们要的信息了。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: