反射

反射
java反射机制是指在运行状态中,动态获取信息以及动态调用对象方法的功能。

反射的执行过程:

java反射—> ? —>编译器—>运行程序
              <—运行程序

java 反射常用API:

    class 类: 反射的核心类,反射所有的操作都是围绕该类来生成的。通过Class类,可以
            获取类的属性,方法等内容。
    Field 类: 表示类的属性,可以获取和设置类中属性的指

    Method 类:表示类的方法,它可以用来获取该类中方法的信息,或者执行方法。

    Constructor 类: 表示类的构造方法。

步骤:
1.导入java.lang.reflect.*;
2.获得需要操作的类java.lang.Class对象
3.调用Class的方法获取Field、 Method对象
4.使用反射API进行操作。

方法:·获取Class对象:

1.调用对象的    **getClass()  方法:**
    getClass() 方法是java.lang.Object 类中的一个方法,所有的java对象都可以调用
        该方法,该方法会返回该对象所属类对象的Class 对象。
        EXStudent p=new Student;   //Student 为自定义的学生类型
            Class cla=p.getClass(); //claclass 的对象
2.**调用类的Class属性**
    调用某个类的class 属性,可以获取该类对应的Class对象,这种方法需要在编译器就
        知道类的名称。
    EX:Class cla=Student.class; //Student 为自定义的学生类型
        Student.class 将会放回Student 类对应的学生类型

3.使用Class 类的forName() 静态方法
    也可以获取该类对象的Class对象,该方法需要传入字符串参数,该字符串
      参数的值是某个类的全名,即要在类名前添加完整的包名。
    EX:Class cla=Class.forName("com.pb.jadv.reflection.Student");   //正确格式

                Class cla=Class.forName("Student"); //错误格式

访问类包含构造方法的常用方法:

1.Constructor getConstructor(Class[] params)
    说明:返回此Class对象表示的类的指定的public 构造方法,parms 参数是按声明顺序
       标志该方法参数类型的Class对象的一个数组,构造方法的参数类型与params所指定
        的参数类型所匹配。   
Ex:Constructor co=c.getConstructor(String.class;List.class);    // c 为某Class对象

2.Constructor [] getConstructors()
    返回此Class对象所表示的类的所有public 构造方法

3.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值