java反射
来源:互联网 发布:mysql如何更改密码 编辑:程序博客网 时间:2024/06/10 22:36
反射和范型的组合大量的应用在框架的架构中,通过对反射和范型的学习有助于理解框架的原理,以下是对反射过程的练习,本人菜鸟一个:
//给的只是个路径:com.test.reflex.Student,测试反射相关的info
Stringpath="com.test.reflex.Student";
//Studentstudent=new Student();
Classclass1=Class.forName(path);
//使用反射的过程中一般根据string获取对应的class
//Classclass1=student.getClass();
System.out.println("字段的info如下所示:");
Field[]field=class1.getDeclaredFields();//获取的是字段,包括私有的,getFields不能得到private修饰的
for(inti=0;i
System.out.println(class1.getName()+"中的字段有"+field[i]);
}
System.out.println("构造的参数如下所示:");
Constructor[]constructor=class1.getConstructors();
for(int i=0;i
System.out.println("构造的名字为:"+constructor[i].getName());
TypeVariable[] variable=constructor[i].getTypeParameters();
for (int j = 0; j < variable.length; j++){
System.out.println(variable[i].getName());
}
}
System.out.println("方法的相关的信息");
Method[]methods=class1.getDeclaredMethods();
for (int i = 0; i <methods.length; i++) {
System.out.println("方法的名称:"+methods[i].getName());
Class[] variable=methods[i].getParameterTypes();
if(variable!=null){
System.out.println("执行啦");
for (int j = 0; j < variable.length; j++){
System.out.println("参数的类型是:"+variable[j].getName());
}
}
Class class2= methods[i].getReturnType();
System.out.println("方法的返回类型是"+class2);
}