反射

定义:java反射机制是在运行状态中,能知道任何一个类的所有属性和方法,能调用任何一个对象的属性和方法,这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

1 创建class对象

1.1 使用类的class属性

Class c = Demo.class;

1.2 使用Class类的forName()方法

Class c = Class.forName("com.yh.test.Demo");

1.3 使用Object对象的getClass()方法

Class c = demo.getClass();

且一个类只能有一个反射对象,即使用三种方法创建同一个类的反射对象,得到的三个结果都是完全相同的。

2 获取构造方法

2.1 getConstructors():返回一个包含某些Constructor对象的数组,这些对象反映此Class对象所表示的类的所有公共构造方法。

2.2 getConstructor(Class<?>...parameterTypes):返回一个Constructor对象,反映此Class对象所表示的类的指定公共构造方法。

2.3 getDeclaredConstructors():返回Constructor对象的一个数组,这些对象反映此Class对象所表示的类声明的所有构造方法。

2.4 getDeclaredConstructor(Class<?>...parameterTypes):返回一个Constructor对象,这些对象反映此Class对象所表示的类或接口声明的指定构造方法。

3 获取成员变量

3.1 getFields():返回一个包含某些Field对象的数组,这些对象反映此Class对象所表示的类或接口的所有可访问公共字段。

3.2 getField(String name):返回一个Field对象,反映此Class对象所表示的类或接口的指定公共成员字段。

3.3 getDeclaredFields():返回Field对象的一个数组,这些对象反映此Class对象所表示的类或接口所声明的所有字段。

3.4 getDeclaredField(String name):返回一个Field对象,这些对象反映此Class对象所表示的类或接口的指定已声明字段。

4 获取方法

4.1 getMethods():返回一个包含某些Method对象的数组,这些对象反映此Class对象所表示的类或接口的公共成员方法。

4.2 getMethod(String name,Class<?>...):返回一个Method对象,这些对象反映此Class对象所表示的类或接口的公共成员方法。

4.3 getDeclaredMethods():返回Method对象的一个数组,这些对象反映此Class对象所表示的类或接口所声明的所有方法,包括公共、保护、默认访问和私有方法,但不包括继承的方法。

4.4 getDeclaredMethod():返回一个Method对象,反映此Class对象所表示的类或接口的指定已声明方法。

原文地址:https://www.cnblogs.com/YeHuan/p/10735930.html