高级java进阶之路之java反射

一.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()来获得。

猜你喜欢

转载自blog.csdn.net/eE1224/article/details/82258030