• 33.反射


    一、概述

    IDEA中的对象是怎么知道类有哪些属性,哪些方法的呢?

    通过反射技术对对象类进行解剖得到了类的所有成员和方法。

    什么是反射?

    可以利用反射在程序运行过程中对类进行解剖并操作类中的所有成员(成员变量,成员方法,构造方法)。

    使用反射操作类成员的前提是什么?

    首先要获得该类字节码文件对象,也就是class对象。

    反射在实际开发中的运用场景

    开发IDE(集成开发环境),比如IDEA,Eclipse

    各种框架的设计和学习 比如Spring,Hibernate,Struct,Mybaits....

    总结:反射是框架设计的灵魂,能够让框架更具有通用性,灵活性。

    二、获得class对象类的三种方式

    方式1:通过类名.class获得。

    方式2:通过对象名.getClass()方法获得。

    方式3:通过Class类的静态方法forName获得

    代码演示:

    打印输出:

     总结:三个方式获取的为同一个class对象。

    三、Class类常用方法

    1.获得类名字符串:类名         String getSimpleName();

    2.获得类全名:包名+类名       String getName();  

    3.创建Class对象关联类的对象【依赖无参构造而存在】   T newInstance() ;  

    代码演示:

     打印输出:

     

    四、Class类中与Constructor相关的方法

    //获取单个指定参数的构造方法
    1. Constructor getConstructor(Class... parameterTypes)  
            * 根据参数类型获得对应的Constructor对象,按照构造方法的参数类型及顺序传入
            * 只能获得public修饰的构造方法
        
        public Student(int age,String name){}
     2. Constructor getDeclaredConstructor(Class... parameterTypes)
            * 根据参数类型获得对应的Constructor对象
            * 可以是public、protected、package-private、private修饰符的构造方法。
        
    //获取所有符合条件的构造方法
     3. Constructor[] getConstructors()
           * 获得类中的所有构造方法对象,只能获得public的
     4. Constructor[] getDeclaredConstructors()
           * 获得类中的所有构造方法对象
           * 可以是public、protected、package-private、private修饰符的构造方法。

     代码演示:

    打印输出:

  • 相关阅读:
    Linux :vim ,gcc ,makefile 三件套之vim的基本使用
    suger BI 创建任务
    深度学习简介及反向传播
    光点高校数据中台,助力高校信息化迎来发展新格局_光点科技
    Linux常用命令— 目录和文件都能操作的命令
    聚焦云原生安全|如何为5G边缘云和工业互联网应用筑牢安全防线
    UDP和TCP的区别
    LabVIEW应用开发——基本函数(一)
    Java 数组、日期和时间
    Mysql索引分类及其使用实例
  • 原文地址:https://blog.csdn.net/denggongming/article/details/126475623