---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
?
1.概念
反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所属的属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。
2Class类
Java程序在运行时,系统会对所有的对象进行所谓的运行时类型标识,用来保存这些信息的类就是Class类。Class类封装一个对象和接口运行时的状态。
3.JVM进程终止的状态分类
A:程序运行到最后正常结束。
B:程序运行到使用System.exit()或Runtime.getRuntime().exit()代码处结束程序。
D:程序所在平台强制结束了JVM进程。
4.获得Class对象的方法
每个类加载后,系统都会为该类生成一个对应的Class对象,通过该Class对象就可以访问到JVM中的类。
A:使用Class类的forName(String ClazzName)静态方法
????? 该方法需传入字符串参数,该字符串参数的值是某个类的全限定类名(必须添加完整包名)
B:调用某个类的Class属性来获取该类对应的Class对象。
例:Person.class 将会返回Person类对应的Class对象。
C:调用Java.lang.Object类中的一个方法调用某个对象的getClass()方法。
5.创建对象的方法
A:使用Class对象的newInstance()方法来创建该Class对象对应类的实例。这种方式要求改Class对象的对应的类有默认的构造器,而执行newInstance()方法时实际上使用默认的构造器来创建类的实例。
B:先使用Class对象获取指定的constructor对象,在调用constructor对象的newInstance()方法来创建该Class对象对应的类的实例。通过这种方式可选择使用指定的构造器来创建实例。
?
使用制定的构造器创建Java对象步骤
A:获取该类的Class对象
B:利用CLass对象的getConstructor()方法来获取指定的构造器。
C:调用Constructor的newInstance()方法来创建Java对象。
6.调用方法
获得某个类对应的Class对象后,可通过该Class对象的getMethods()方法和getMethod()方法来获去全部或指定的方法。这两个方法的返回值类型是Method数组和Method对象。
A: Object invoke(Object obj,Object..args)
该方法中的obj是执行该方法的主调,后面的args是执行该方法时传入该方法的实参。
B:public static void setAccessible(boolean flag)
调用此方法来取消访问权限检查,可通过反射既可访问private成员。
7.访问属性值
通过Class对象getFields()和getFiled()方法可获去该类所包括全部Field或指定的Field
A:getXxx(Object obj)获取obj对象该Field的属性值,此处Xxx对应8个基本类型,如该属性类型是引用类型,则取消get后面Xxx。
B;setXxx(Object obj,Xxx val)
将obj对象的该Field设置为val值,此处Xxx对应8个基本类型,如该属性类型是引用类型,则取消set后面的Xxx。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net