Java 中的反射是什么意思?有哪些应用场景?

每个类都有一个 Class 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件内容保存着 Class 对象。类加载相当于 Class 对象的加载,类在第一次使用时才动态加载到 JVM 中。也可以使用 Class.forName(“com.mysql.jdbc.Driver”) 这种方式来控制类的加载,该方法会返回一个 Class 对象。

反射可以提供运行时的类信息,并且这个类可以在运行时才加载进来,甚至在编译时期该类的 .class 不存在也可以加载进来。Class 和 java.lang.reflect 一起对反射提供了支持,java.lang.reflect 类库主要包含了以下三个类:

(1)Field :可以使用 get() 和 set() 方法读取和修改 Field 对象关联的字段;

(2)Method :可以使用 invoke() 方法调用与 Method 对象关联的方法;

(3)Constructor :可以用 Constructor 创建新的对象。

应用举例:工厂模式,使用反射机制,根据全限定类名获得某个类的 Class 实例。

发表评论

后才能评论

评论(3)

  • 一蓑烟雨 普通 2022-09-28 9:12 上午

    JAVA机制反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
    Java的反射机制允许编程人员在对类未知的情况下,获取到类的相关信息,让我们的编码更加灵活。

  • mpweixin用户 普通 2022-07-06 11:18 上午

    Java的反射(reflection)机制是指在程序的运行状态中可以获取某个对象的类并构造任意一个类的对象,调用对象的属性和方法。

  • mpweixin用户 普通 2022-03-17 5:11 下午

    反射是Java的特征之一,是一种间接操作目标对象的机制。

    Java反射机制指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法。这种动态获取类的内容以及动态调用对象的方法称为反射机制。

    Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。

    意义

    首先,反射机制极大的提高了程序的灵活性和扩展性,降低模块的耦合性,提高自身的适应能力。

    其次,通过反射机制可以让程序创建和控制任何类的对象,无需提前硬编码目标类。

    再次,使用反射机制能够在运行时构造一个类的对象、判断一个类所具有的成员变量和方法、调用一个对象的方法。

    最后,反射机制是构建框架技术的基础所在,使用反射可以避免将代码写死在框架中。

    正是反射有以上的特征,所以它能动态编译和创建对象,极大的激发了编程语言的灵活性,强化了多态的特性,进一步提升了面向对象编程的抽象能力,因而受到编程界的青睐。
    ————————————————

    原文链接:https://blog.csdn.net/weixin_39531604/article/details/114616400