反射基础补充
反射基础补充
java提供了程序运行时探索未加载类的能力和方法 —-> 反射机制
一个类在什么时候会加载?
类加载:
```plain text 1.访问类的静态方法或属性
2.首次创建类的实例(只有在首次创建实例的时候才会加载,之后再创建实例不会加载)
3.Class.forName(“类的全限定类名”);
1
2
3
4
5
6
7
8
9
Class.forName()
1.获取目标类中定义的方法
```plain text
<font style="color:rgb(63, 127, 95);">//获取目标类中显式定义多有方法(包括私有方法,不包括构造方法)</font>
Method[]<font style="color:rgb(106, 62, 62);">methods</font>=<font style="color:rgb(106, 62, 62);">clazz</font>.<font style="background-color:rgb(212, 212, 212);">getDeclaredMethods</font>();
2.获取目标类中定义的字段
```plain text //获取字段
1
Field[]<font style="color:rgb(106, 62, 62);">fields</font>=<font style="color:rgb(106, 62, 62);">clazz</font>.getDeclaredFields(); ```
3.获取目标类中定义的构造方法
```plain text //获取构造方法
1
Constructor<?>[]<font style="color:rgb(106, 62, 62);">constructors</font>=<font style="color:rgb(106, 62, 62);">clazz</font>.getConstructors(); ```
本文由作者按照 CC BY 4.0 进行授权