黑马程序员-java反射基础

                                       ---------- android培训  java培训    期待与您交流!------------

 

Reflection
反射:动态获取类的信息,以及动态的调用类的方法
 (就是把java类中的各种成分映射成为相应的java类

JAVA反射机制主要提供了以下功能:
      1.在运行时判断任意一个对象所属的类
      2.在运行时构造任意一个类的对象
      3.在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法)
      4.在运行时调用任意一个对象的方法(*****注意:前提都是在运行时,而不是在编译时)

  Java 反射相关的API简介:
      位于java。lang。reflect包中
        --Class类:代表一个类,描属性述了Java类的名字,类的访问属性类的包名,字段名称的列表,方法名称   的列表
                       得到一个字节码对应的实例对象:
                               --对象.class
                               --getClass();
                               --Class.forName("类名");
        --Filed类:代表某个类的成员变量
                      得到某个代表某个类的成员变量代码如下:
                      Filed filed = 类的字节码.getFiled(); 
                     取出的是这个类中的变量,最有还应该:
                     filed.get(对象);
                     filed不是对象身上的变量,而是类上要用它去取某个对象上对应的值。

                    对于访问类中私有的变量可以使用:
                    Filed filed = 类的字节码.getDeclaredField("变量的名字");

                     然后将这个变量的访问权限给为true;
                     filed.setAccessible(true);

                     最后在调用filed的get(),就可以取出了
                     filed.get(对象);
       --Method类:代表某个类中的成员方法
                     得到某个类中的成员方法代码如下:
                         Method method = 类的字节码.getMethod(方法名,参数的字节码对象);

                    得到了方法以后使用invoke()调用:
                         method.invoke(对象,参数);

                    如果对象为null,则代表着这个方法是静态方法。
  
        --Constructor类:代表某个类中的构造方法
                   得到某个类中的构造方法代码如下:
                         Constructor con = 类.class.getConstructor(参数类型的字节码);

                   那么得到了某个类中的构造方法就可以new一个对象:
                         con.newInstance(参数);

        --Array类:提供了动态创建数组,以及访问数组的元素的静态方法。该类中的所有方法都是静态方法

 

 

                                                            ----------  android培训  java培训     期待与您交流!------------

                                                              详情请点击:http://edu.csdn.net/


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值