一.java反射之如何获得一个类的Class对象
1.Class.forName(“完整类名”),这种方法最常用//完整类名是指包名+类名
2.通过类名调用类的class属性,即:类名.class
3.通过类的实例对象调用类getClass()函数,即:类的实例对象.getClass()
二.如何通过反射调用类的属性(Field),方法(Method),构造器(Constructor)
我们首先要获得类的Class对象,设Test是java项目中src下的一个类,Test类的具体情况如下:
class Test{
private name;
private setName(String name){
this.name=name;
}
private getName(){
return name;
}
private Test(){
}
private Test(String name){
this.name=name;
}
}
则我们先通过下述方式获得Test的Class对象
Class c=Class.forName("Test");
我们可以通过c.getFields()函数来获取Test类的访问类型为public的属性
同样的我们可以通过c.getMethods(),c.getConstructors()函数分别来获得Test类的访问类型为public的方法和构造器
如果我们想获得Test类的各种访问权限的属性,方法和构造器(public,protected,default,private),可以通过c.getDeclaredFields(),c.getDeclaredMethods(),c.getDeclaredConstructors()来获得。