反射1

反射:

基本特征:

  • 允许运行中的Java程序对自身进行检查,或者说自审,并能直接操作程序的内部属性
  • 可以通过名称得到对象(类、属性、方法等)
  • 运行时探究和使用编译时未知的类
  • .选方法的时候就是反射

使用步骤:

  • 获取class对象
  • 通过class对象探究这个类的信息
  • 操作探究出的信息
获取class对象:
  • 三种方式:
    • New
    User u = new User();
    Class uClass = u.getClass();
    Class strclass = "hello".getClass();
    int[] intArray = new int[6];
    Class arraClass = intArray.getClass();
    Class uClass1 = User.class;
      • 根据类型名称获取class对象
      Class strClass1 =String.class;
      Class arrayClass = int[].class;
      //JDK1.5 以后才有
      Class intClass = int.class; // 基本数据类型,也有 Class 对象
      Class voidClass = void.class; // 虽然不是数据类型,但他是返回类型,也有 class 对象
      //JDK1.5 之前,想要获取 int.class 对象必须要如下操作
      Class integerClass = Integer.class;
      Class intClass1 = Integer.TYPE;
      // 以上两种方法,不管用那种方法,一个类型只有一个 class 对象
        • 根据类型的字符串名称获取class对象(最多)
        实现方式:调用 Class.forName (”类的限定名“),记得带包
        使用范围:只有类类型(包括接口),基本数据类型和引用数据类型
        动态性:有唯一 一个可以
        Class uClass2 = null;
        try {                                                
        // 必须掌握
        uClass2 = Class.forName("fanshe.User"/* 字符串类型 */);
        // 动态性的体现,可以传参
        String className = new Scanner(System.in).next();
        uClass2 = Class.forName(className);                                                 
        } catch (ClassNotFoundException e) {
         
        }
        通过class对象,探究一个类的对象
        • Field:属性
        • Constructor:构造
        • Method:方法
        • Declared:声明
          1. 操作从class对象中探究出的信息
            • New instance:创建对象
            • Get/set:查看和修改
            • Invoke:调用方法

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

            “相关推荐”对你有帮助么?

            • 非常没帮助
            • 没帮助
            • 一般
            • 有帮助
            • 非常有帮助
            提交
            评论
            添加红包

            请填写红包祝福语或标题

            红包个数最小为10个

            红包金额最低5元

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

            抵扣说明:

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

            余额充值