Java反射机制

来源:互联网 发布:php pdf完整版 编辑:程序博客网 时间:2024/05/01 02:33
<1>、Java的反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用在编译期并不知道的类。这样的特点就是反射。

<2>、Java的反射机制它知道类的基本结构,这种对Java类结构探知的能力,我们称为Java类的“自审"

<3>、
Class
要正确使用Java反射机制就得使用java.lang.Class这个类。它是Java反射机制的起源

<4>、
反射API

 

u反射API用于反应在当前Java虚拟机中的类、接口或者对象信息

u功能
获取一个对象的类信息

获取一个类的访问修饰符、成员、方法、构造方法以及超类的信息

检获属于一个接口的常量和方法声明

创建一个直到程序运行期间才知道名字的类的实例

获取并设置一个对象的成员,甚至这个成员的名字是
   在程序运行期间才知道

检测一个在运行期间才知道名字的对象的方法 

 <5>、代码示例:

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();

}

}  
原创粉丝点击