Java反射原理及源码实现;java获取类的所有属性(类名,方法名、返回值类型,参数类型);java动态调用类的方法

  • 反射的定义及概述

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法(类名,方法名,参数类型,返回值类型);对于任意一个对象,都能够调用它任意一个方法属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

     总结来说就是,反射就是把java类中的各种成分映射成一个个   java对象例如:一个类有:成员变量、方法、构造方法,包等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象

  • 反射的相关函数介绍:

    • 获取类的三种方法
      • 第一种方式-->Class.forName("类名字符串")

        • Class c1=Class.forName("com.edu.Student");

      • 第二种方式-->先创建对象,再用对象调用getClass()方法,即实例对象.getClass().返回运行时类

        • Student s=new Student();

        • Class c2 = s.getClass();​​​​​​​

      • 第三种方式-->类名.class。返回Class的对象。(每个类都有class属性)

        • ​​​​​​​Class c2 = s.getClass();    

          (!!!Class类用于表示.class文件(字节码),获取某个类时的前提条件就是获取该类的Class)
    • 获取属性
    • 获取方法
    • 获取构造函数
    • 获取其他信息
  • 具体代码实现:

    • ​​​​​​​引入工程截图
      • ​​​​​​​
    • 获取类的类名
      • ​​​​​​​实体类Student 
        • ​​​​​​​略
      • 获取代码实现
    • 获取类的构造方法
      • ​​​​​​​Student类的构造方法
        • ​​​​​​​
      • 获取的代码实现
        • ​​​​​​​
    • 获取类的方法
      • ​​​​​​​Student类的方法
        • ​​​​​​​
      • 获取的代码实现
        • ​​​​​​​
    • 获取类的属性
      • ​​​​​​​Student类的属性
        • ​​​​​​​
      • 获取属性的代码实现
        • ​​​​​​​
    • 获取类的其他信息
      • ​​​​​​​获取的代码实现
        • ​​​​​​​

参考文献:

  1. https://blog.csdn.net/sinat_38259539/article/details/71799078
  2. https://blog.csdn.net/ylyang12/article/details/53469957
  3. https://blog.csdn.net/qq_24341197/article/details/77964172

备注说明:

     此DSCN是作者根据以上几篇文章进行编辑的,作为自己的学习笔记,也自己在编辑器上进行实际操作的,并无刻意抄袭或者盗取别人劳动成功的想法。谢谢!

猜你喜欢

转载自blog.csdn.net/huang1178387848/article/details/81149643