二、反射的使用

一、为什么要学反射?反射是什么?反射的使用场景?

  • 当编写工具类需要传入一个未知类型对象时,操作不了该对象。不过可以获取该对象的字节码对象,通过字节码对象可以操作该对象,而通过字节码对象操作对象的过程就是反射

  • 反射:通过类的字节码对象操作类的对象过程

  • 使用场景

    • 需要操作未知类型的对象时需要用到反射

二、说说使用反射的基本过程

  • 获取类的字节码对象

  • 通过字节码对象获取类的构造方法

  • 通过类的构造方法创建类的对象

  • 通过反射的相关方法操作该对象

三、获取字节码对象的方式有哪些?

  • 对象.getClass();

  • 数据类型.class;

  • Class.forName(类的全限定名);该方式最常用

四、反射的常用方法有哪些?

  • 获取类的构造方法

    • 公共无参构造器:getConstructor();
    • 公共有参构造器:getConstructor(参数类型);
    • 所有公共构造器:getConstructors();
    • 公共/私有无参构造器:getDeclaredConstructor();
    • 公共/私有有参构造器:getDeclaredConstructor(参数类型);
    • 所有构造器(公共、私有、无参、有参):getDeclaredConstructors();
  • 获取类的方法

    • 公共无参成员方法:getMethod(方法名);
    • 公共有参成员方法:getMethod(方法名,参数类型);
    • 所有公共成员方法(子类、父类):getMethods();
    • 公共/私有无参成员方法:getDeclaredMethod(方法名);
    • 公共/私有有参成员方法:getDeclaredMethod(方法名,参数类型);
    • 所有成员方法(不包含父类成员方法):getDeclaredMethods();
  • 获取类的字段

    • 公共字段:getField(字段名);
    • 所有公共字段:getFields();
    • 公共/私有字段:getDeclaredField(字段名);
    • 所有字段(公共、私有):getDeclaredFields();
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 内容 1 获取接口类型值2 修改接口类型值3 反射调用函数4 反射调用方法5 reflect包api使用 先回顾一...
    chase_lwf阅读 3,222评论 0 0
  • java反射是什么 其实就是动态的从内存加载一个指定的类,并获取该类中的所有的内容。 反射的好处:大大的增强了程序...
    之后_90阅读 4,421评论 0 1
  • 10.反射 反射就是通过操作字节码文件来做两件事 创建对象 调用方法 对比硬编码效率会低一些,但是代码的灵活性大大...
    ADMAS阅读 1,342评论 0 0
  • 概念 得到类的元数据的过程,即在运行时期动态地获取某个类的成员信息(构造类、方法、字段、内部类、接口、父类等),反...
    dawsonenjoy阅读 1,787评论 0 0
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 11,076评论 0 5

友情链接更多精彩内容