• 注解与反射_反射


    什么是反射

            反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java的反射机制

    反射的作用

            通过Java的反射机制可以读取与修改字节码文件(.class文件)

    如何进行反射

            Java的反射依赖Class类、Field类、Method类、Constructor类进行,获取后三者需要先获取Class

    描述
    java.lang.Class代表整个字节码。代表类。
    java.lang.reflect.Field代表字节码中的属性字节码。代表类中的属性
    java.lang.reflect.Method代表字节码中的方法字节码。代表类中的方法。
    java.lang.reflect.Constructor代表字节码中的构造方法字节码。代表类中的构造方法。

    什么是Class类?

            在Java中,一个类存在一个相对应的Class类对象

            一个类被编译完成后,将生成一个对应的Class对象,保存为同名的.class文件,其中存储了该类的运行时类型信息

    如何获取Class对象

    1. //三种获得Class对象的方式 与 获取父类的Class对象
    2. public class Part01 {
    3. public static void main(String[] args) throws ClassNotFoundException {
    4. //本质上class01、class02、class03是(地址)相同的 因为一个类的Class对象只会存在一个
    5. //通过全限定名获得
    6. Class class01 = Class.forName("cn.alan.reflection.part_01.User");
    7. //通过实例对象获得
    8. User user = new User();
    9. Class class02 = user.getClass();
    10. //通过类名获得
    11. Class class03 = User.class;
    12. //获取父类的Class对象
    13. //可视为另一种获取Class对象的方式 即通过子类获取
    14. Class class04 = VipUser.class;
    15. Class class05 = class04.getSuperclass();
    16. }
    17. }

    注:对于基本数据类型的封装类,可采用.TYPE来获取对应的基本数据类型的Class对象

  • 相关阅读:
    微服务在idea中简单部署到docker
    盘点2022年世界杯的科技与狠活
    mysql一条语句是如何被执行的——带你了解mysql语句执行内部顺序
    openGauss学习笔记-67 openGauss 数据库管理-创建和管理普通表-创建表
    【手把手带你学JavaSE】第五篇:Java中的数组
    汽车技术市场动态分析
    Linux/shell命令
    数据结构系列-堆排序
    c++好用的网站
    java基本数据类型如何定义和初始化呢?
  • 原文地址:https://blog.csdn.net/Mudrock__/article/details/126213546