<2>、Java的反射机制它知道类的基本结构,这种对Java类结构探知的能力,我们称为Java类的“自审"
<3>、Class类
<4>、反射API
u反射API用于反应在当前Java虚拟机中的类、接口或者对象信息
u功能
—获取一个对象的类信息.
—获取一个类的访问修饰符、成员、方法、构造方法以及超类的信息.
—检获属于一个接口的常量和方法声明.
—创建一个直到程序运行期间才知道名字的类的实例.
—获取并设置一个对象的成员,甚至这个成员的名字是
在程序运行期间才知道.
—检测一个在运行期间才知道名字的对象的方法
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import javax.swing.JOptionPane;
/**
*本类用于测试反射API,利用用户输入类的全路径,
*找到该类所有的成员方法和成员属性
*/
public class MyTest {
/**
*构造方法
*/
public MyTest(){
String classInfo=JOptionPane.showInputDialog(null,"输入类全路径");//要求用户输入类的全路径
try {
Class cla=Class.forName(classInfo);//根据类的全路径进行类加载,返回该类的Class对象
Method[] method=cla.getDeclaredMethods();//利用得到的Class对象的自审,返回方法对象集合
for(Method me:method){//遍历该类方法的集合
System.out.println(me.toString());//打印方法信息
}
System.out.println("********");
Field[] field=cla.getDeclaredFields();//利用得到的Class对象的自审,返回属性对象集合
for(Field me:field){ //遍历该类属性的集合
System.out.println(me.toString());//打印属性信息
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new MyTest();
}
}