Java之反射
反射的基本思路
Step1:获得目的类的class字节码对象。
Step2:通过getConstructor()获得构造器的方式获得构造器对象。
Step3:通过构造器类的方法newInstance()获得所反射的对象。
NOTE:通过反射可以获得成员变量(属性)、成员方法、构造方法
如何获取class字节码对象(三种方式)
方式一:通过对象获取
1 | Person p = new Person(); |
方式二:类名获取
1 | Class clazz = Person.class; |
方式三:Class类的静态方法获取
1 | Class clazz = Class.forName("类的全包名"); |
Ps:拿到的class字节码对象具有唯一性。
反射获得构造方法
1 | //获得字节码对象 |
反射获取到成员变量和成员方法
NOTE:反射的泛型擦除原理:java是伪泛型,编译后的class文件是没有泛型的,可利用反射绕开泛型。
1 | //获得字节码对象 |
反射的常用方法
1 | //返回表示声明该Field字段对象的类或接口的Class字节码对象。 |