跳至主要內容

反射

摸鱼散人大约 2 分钟

什么是反射?

  • new 对象
    • 创建对象实例的方式
    • 在编译时候就确定了类型信息
  • 反射
    • 在运行时动态地获取类信息、创建类实例、调用类方法这时候就要用到反射
    • 通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性
  • 反射相关类
    • Class
    • Method
    • Field
    • Constructor

反射的应用场景?

  • Spring/Spring Boot、MyBatis 等等框架中都大量使用了反射机制
  • Spring里的很多注解 ,它真正的功能实现就是利用反射
    • @Component
    • @Value

反射的实现原理

  • 基于Java虚拟机(JVM)的类加载机制和类对象模型
  • 在Java中,每个类都有一个对应的Class对象,该对象包含了类的名称、字段、方法等信息
  • 通过反射,我们可以获取到Class对象信息,并在运行时动态地操作类和对象