• 反射获取类、方法、属性


    目录

    获取类的Class对象

    获取构造方法

    获取类属性

    getFields和getDeclaredFields区别:

    获取类中的方法


    获取类的Class对象

    方法编程调用方法
    调用getClass

    `Boolean var1 = true;

    Class classType2 = var1.getClass();

    System.out.println(classType2); `

    输出:class java.lang.Boolea

    运用.class 语法

    `Class classType4 = Boolean.class;


    System.out.println(classType4);`

    输出:class java.lang.Boolean

    运用静态方法Class.forName()

    `Class classType5 =   Class.forName("java.lang.Boolean"); System.out.println(classType5);

    ` 输出:class java.lang.Boolean

    运用primitive wrapper classes的TYPE语法,这里返回的是原生类型,和Boolean.class返回的不同

    `Class classType3 = Boolean.TYPE; System.out.println(classType3);`

    输出:boolean

    获取构造方法

    通过反射机制得到某个类的构造器,然后调用该构造器创建该类的一个实例。`Class`类提供了几个方法获取类的构造器。

    方法说明
    `Constructor getConstructor(Class...   parameterTypes)`返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法
    `Constructor[] getConstructors()`返回一个包含某些 Constructor 对象的数组,这些对象反映此 Class 对象所表示的类的所有公共构造方法
    `Constructor getDeclaredConstructor(Class...   parameterTypes)`返回一个 Constructor 对象,该对象反映此 Class 对象所表示的类或接口的指定构造方法
    `Constructor[] getDeclaredConstructors()`返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法。它们是公共、保护、默认(包)访问和私有构造方法

    获取类属性

    获取类的Fields。可以通过反射机制得到某个类的某个属性,然后改变对应于这个类的某个实例的该属性值。JAVA 的`Class`类提供了几个方法获取类的属性。

    方法说明
    Field getField(String name)返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段
    Field[] getFields()返回一个包含某些 Field 对象的数组,这些对象反映此 Class 对象所表示的类或接口的所有可访问公共字段
    Field getDeclaredField(String name)返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段
    Field[] getDeclaredFields()返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段

    getFields和getDeclaredFields区别:

    • getFields返回的是申明为public的属性,包括父类中定义,
    • getDeclaredFields返回的是指定类定义的所有定义的属性,不包括父类的。

    获取类中的方法

    通过反射机制得到某个类的某个方法,然后调用对应于这个类的某个实例的该方法。Class类提供了几个方法获取类的方法。

    方法说明 
    `Method getMethod(String name, Class...   parameterTypes)`返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法
    Method[] getMethods()返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法
    `Method getDeclaredMethod(Stringname, Class...   parameterTypes)`返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法
    Method[] getDeclaredMethods()返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法

     

  • 相关阅读:
    Element常用api webview
    数据结构知识点总结
    【Oracle】Navicat Premium 连接 Oracle的两种方式
    Json详解
    CSS 实现跳动的方块动画
    阿里云云原生一体化数仓 - 数据安全能力解读
    标签属性disabled selected checked等布尔类型赋值不生效?
    JSP基本概念
    关于如何进行ChatGPT模型微调的新手指南
    排序算法之选择排序
  • 原文地址:https://blog.csdn.net/weixin_50518344/article/details/126928674