文章

反射基础补充

反射基础补充

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 进行授权