黑马程序员——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方法可以获取包括私有在内的任意方法
反射主要是和配置文件关联使用,应用在框架中
反射就是动态获取类中的信息,,可以理解为对类的解剖,提高了程序的扩展性。比如我们已经做好了一个应用程序,但是后期又有其他的新功能需要加入,又不能去修改原来的代码,就可以利用反射技术,动态的加载这个类,获取其对象,并调用其中的方法。每个.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方法可以获取包括私有在内的任意方法
反射主要是和配置文件关联使用,应用在框架中
相关文章推荐
- 黑马程序员---for循环和案例
- 黑马程序员---while 和do while 循环
- 一道小小的内存申请面试题
- 中兴软创Java实习生面试题目
- 2015年面试经历
- 阿里电话面试详解
- 全新整理:微软、谷歌、百度等公司经典面试100题[第101-160题]
- (剑指Offer)面试题34:丑数
- 阿里电话面试题详解
- 新人入职培训有关职场沟通的总结分享
- 《程序员面试宝典4学习记录》
- 黑马程序员——Java IO总结二
- 求一个整形数组的和最大的连续子串 -------- 程序员面试金典
- 黑马程序员
- 7.24晚毫无准备的面试题
- (剑指Offer)面试题33:把数组排成最小的数
- 全面解析《嵌入式程序员应该知道的16个问题》
- 面试题19_二叉树的镜像——剑指offer系列
- 实习工作面试常问问题
- [黑马程序员](第19天)一些遗漏的知识点