您的位置:首页 > 职场人生

黑马程序员——Java反射总结

2015-07-25 20:07 507 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------        

 反射就是动态获取类中的信息,,可以理解为对类的解剖,提高了程序的扩展性。比如我们已经做好了一个应用程序,但是后期又有其他的新功能需要加入,又不能去修改原来的代码,就可以利用反射技术,动态的加载这个类,获取其对象,并调用其中的方法。每个.class文件都对应一个Class对象,可以通过Class对象获取这个类的构造函数,方法,成员变量。

        获取Class类有三种方式

           1、Object类中的getClass()方法,想创建必须要有类对象

           2、任何数据类型都具备一个静态属性.Class来获取其对应的Class对中,但还是要明确类中的静态成员

           3、通过类的字符串名称,用Class类中forName()方法,产生字节码文件对象,注意必须的带包名的类名

         

Constructor 类

          获取其实例用newInstance()方法,是类的共有空参方法

          若类中无空参构造函数时,若要通过指定构造函数初始化,通过字节码文件的getConstructor()方法,再通过构造器对象的newInstance方法进行对象的初始化



      

Field类

        Field表示类的成员变量,可以是实例变量,也可以是静态变量

        获取Field类用getField方法,getDeclaredField方法可以获取包括私有在内的任意变量

        Field类常用的方法有getName,获取成员变量名;getDeclaringClass,获取成员变量的类型;getType,获取当前成员变量的类型;get(Object obj)获取Obj成员变量          的值;set(Object obj,Object  value)设置Obj对象成员变量的值为value。



Method类

  Method类表示成员的方法

      获取Method类用getMethod方法,getDeclaredMethod方法可以获取包括私有在内的任意方法

 

   

反射主要是和配置文件关联使用,应用在框架中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: