定义: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对象所表示的类或接口的指定已声明方法。