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类的构造方法
-
获取类的方法
-
Student类的方法
-
-
获取的代码实现
-
-
Student类的方法
-
获取类的属性
-
Student类的属性
-
-
获取属性的代码实现
-
-
Student类的属性
-
获取类的其他信息
-
获取的代码实现
-
-
获取的代码实现
-
引入工程截图
参考文献:
- https://blog.csdn.net/sinat_38259539/article/details/71799078
- https://blog.csdn.net/ylyang12/article/details/53469957
- https://blog.csdn.net/qq_24341197/article/details/77964172