反射

  • 1.反射
    反射主要解决动态编程,即使用反射时,所有的对象生成是动态的,因此调用的方法也是动态的.反射可以简化开发,但是代码的可读性很低.
    很多主流框架都使用了反射技术.像ssh框架都采用两种技术 xml做配置文件+反射技术.

  • 2 与反射有关的类包
    java.lang.reflect.*;和java.lang.Class;

  • 3 反射的操作
    Java中所有类型(包括基本类型)都对应一个Class对象,这个Class就是java.lang.Class。即每一个类型,在Class中都有一个Class对象跟它对应.Class 没有公共构造方法。注意不是没有,是没有公共的.

  • 4如何获得class对象

    1. 针对每一个对象.getCalss(),可以得到对应的Class.
    2. Class.forName(String),String的写法:包名.类名.就会创建包名.类名 、 对应的那个对象
    3. 对于基本类型:封装类.TYPE代表了对应的基本类型的Class对 象.Integer.TYPE对应的是int的Class对象
    4. 类型,Class。<第4种是通用的.>
      注:1.2只适用于引用类型
      注:3只适用于基本类型,4是通用的

上面的4种方法,只有方法2是动态的,只要换一个包就可以了.它具有动态潜质.所以真正意义的想体现动态编程只能使用方法2.
每种类型的Class对象只有一个,即他们的地址只有一个,但是不同类型是不同的.
所以下面的打印结果都为true.
//对与引用类型
Class c1 = “”.getClass();
Class c2 = Class.forName(“java.lang.String”);
Class c3 = String.class;
System.out.println(c1 ==c2);//true
//对于基本类型
Class num1 = Integer.TYPE;
Class num2 = int.class;
System.out.println(num1 == num2);//true

  • 5.反射获取类中的成员

    这里写图片描述

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值