java 中的反射API 反射API 当我们在开发Debugger的时候用到 反射API可以获得一个类的内部构造 定义的成员 方法 构造函数 。。。
java.lang.reflect.* 必须导入因为java.lang会自动导入但是 子包却不会 这个包中有一堆类 如 Method Field Construction类 等等
java.lang.Class 中的函数可以获得 这些类的数组 例如getDeclaredFields() 返回声明的 所有 变量的一个Field 数组
getDeclaredConstructions()返回声明的所有的Construction类构造函数的数组
getDeclaredMethods() 返回所有的Method方法 我们可以利用System.out.println()输出类
*/
import java.lang.reflect.* ;
class Test
{
public static void main(String[]args) throws Exception //声明抛出异常 那么我们就不用捕捉了
{
if(args.length!=1)
System.exit(-1);
else
{
Class c1= Class.forName(args[0]);
Constructor []cons=c1.getDeclaredConstructors(); //获得定义的构造函数
Method []meds=c1.getDeclaredMethods(); //获得定义的方法
Field []fies=c1.getDeclaredFields() ;//获得定义的字段也就是变量
for(int n=0;n<cons.length;n++)
System.out.println(cons[n]); //输出定义的构造函数
for(int n=0;n<meds.length;n++)
System.out.println(meds[n]); //输出定义的方法
for(int n=0;n<fies.length;n++)
System.out.println(fies[n]); //输出定义的成员变量
}
}
}