Java中的反射机制
Java中的反射机制
一、类对象概念:
提供类本身的信息(构造方法、属性、普通方法)。
获取类对象:class.forname, xxx.class,new xxx().getclass()
反射机制:先拿到类对象,再通过类对象,获取构造器对象,再通过构造 器对象创建一个对象
//类对象
Class pClass=Class.forName(className);
//构造器
Constructor x= pClass.getConstructor();
//通过构造器实例化
XXX a= (XXX) x.newInstance();
二、通过反射更改属性值
1、X.getClass().getDeclaredField()
2、getField和getDeclaredField的区别
都用于获取字段
getField 只能获取public的,包括从父类继承来的字段。
getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。 (注: 这里只能获取到private的字段,但并不能访问该private字段的值,除非加上setAccessible(true))