黑马程序员-学习日记10

黑马程序员-学习日记10

  
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!


1,反射机制:反射就是把java类中的各种成分映射成相应的java。
2,Java反射的功能
  1)可以判断运行时对象所属的类
  2)可以判断运行时对象所具有的成员变量和方法
  3)通过反射甚至可以调用到private的方法
  4)生成动态代理
3,实现Java反射的类
  1)Class:它表示正在运行的Java应用程序中的类和接口
  2)Field:提供有关类或接口的属性信息,以及对它的动态访问权限
  3)Constructor:提供关于类的单个构造方法的信息以及对它的访问权限
  4)Method:提供关于类或接口中某个方法信息
  注意:Class类是Java反射中最重要的一个功能类,所有获取对象的信息(包括:方法/属性/构造方法/访问权限)都需要它来实现
4,Class类没有公开的构造方法,取而代之的是当java虚拟机载入或者被classloader的方法载入时,会自动被创建出来。


获得Class对象有三种方法:


(1) 类名.class ,例如 System.class;
(2) 对象.getclass(),例如 new Person().getclass();
(3) Class.forName(“类名”);例如,Class.forName(“java.util.Date”);
反射的时候,主要用第三种方法。
5 Field类代表某个类中的一个成员变量,它是反射把类的成员变量封装成的新类。


   字节码对象提供两组方法获得Field对象:
getField(String name)/getFields(); //只可访问公共成员变量
getDeclareField(String name)/getDeclareFields(); //可以访问所有变量
6,Method类:代表了类中的一个方法:
    1,得到一个类中的所有的方法:Method[] methods = 类名.class.getMethods();
    2,得到一个类中的指定的某个方法:Method method = 类名.class.getMethod("方法名",参数.class ...);
    3,用反射的方式调用这个方法:method.invoke(对象名,参数...);
        当调用静态方法时使用invoke(null,参数....);"http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值