• Java反射API详解与应用场景


    一、Java反射API简介:

    一、什么是反射:

     

    反射是一种强大的工具,它允许我们在运行时检查类、方法和字段的信息,甚至允许我们动态的调用特定类的方法或改变字段的值。编程语言中的反射机制通常用于从类、对象或方法中检索元数据,或者更特别的说,从代码本身中获取信息。这就意味着我们可以通过一个程序获取我们代码的信息,甚至是修改它。

     

    例如,如果你有一个对象,你可以查询它的类是什么、有哪些字段、有哪些方法,你甚至可以调用它的某个方法,而这一切都是在运行时进行的,也就是说你在编写程序的时候并不知道要操作的类是什么。

     

    二、核心类与接口:

     

    在Java的java.lang.reflect包中,提供了设计用来支持Java反射的类和接口,以下是四个主要的类:

     
    1. Class: 每一数组、枚举、接口、类,甚至是注解,在被JVM加载时,都会自动构造一个Class对象。我们可以通过它获取到这个类型的所有信息。

    2. Field: 它代表类的成员变量(成员变量也可以称作属性)。通过它我们可以获取到成员变量的所有信息,也可以操作成员变量的值。

    3. Method: 它代表类的方法。通过它我们可以获取到方法的所有信息,也可以调用方法。

    4. Constructor: 它代表类的构造器。通过它我们可以获取该构造器的所有信息,也可以通过它来实例化一个对象。

     

    另外 Modifier 类提供了关于类和成员访问修饰符的信息。

    二、利用反射进行类操作:

    一、加载类:

     

    在Java中,加载类最常见的方法就是使用 Class 类的 forName() 方法。这个方法接受一个字符串参数,这个字符串参数的值是某个类的全路径名。

     

    例如,以下代码加载java.util.Date类,然后返回表示该类的Class对象:

    Class dateClass = Class.forName("java.util.Date");
    
     

    二、创建实例:

     

    有了类的Class对象后,我们就可以使用这个Class对象创建该类的实例。最常见的做法是调用Class对象的newInstance()方法:

    Object dateObject = dateClass.newInstance();
    
     

    这行代码会调用java.util.Date类的无参数构造方法来创建一个新的Date对象。

     

    注意:newInstance()方法只能调用无参数的构造方法。如果类没有无参数的构造方法,或者无参数构造方法不可访问,你就不能用这种方式创建类的对象。

     

    三、获取类信息:

     

    下面是一些获取类信息的方法:

     
    • 获取类名: getName()方法可以返回类的全路径名,getSimpleName()方法返回类的简单名字。
    • <
  • 相关阅读:
    携职教育:软考是什么,居然可以直接报高级职称?
    STM32笔记—DMA
    超详细!DALL · E 文生图模型实践指南
    设计模式:工厂模式和抽象工厂模式的区别
    串口实验——简单数据收发
    剑指 Offer 66. 构建乘积数组
    相控阵天线(七):常规平面阵列分布(矩形阵列、三角栅格、六边形阵列和圆形阵列)
    Spring5框架
    JavaScript-策略模式
    用WindowsAppSDK(WASDK)优雅的开发上位机应用
  • 原文地址:https://blog.csdn.net/weixin_37954941/article/details/140007300