总结放前面:
反射是可以通过一个类对象或类名称获取到该类的全部信息(属性和方法),包括为权限为private。
要使用反射第一步,要获取的类的Class对象,该Class对象存放在堆区,于类加载时创建,全局只有一对象,使用单例模式创建。
然后根据需求:
需要使用构造器——》
需要使用该类的成员变量——》
需要使用该类的成员方法——》
注意invoke需要传入一个类型明确的对象——》
如何理解破坏封装性?
所谓封装指方法或变量使用private修饰,外部类无法访问,而通过反射的getDeclaredxxx看可以获取到private的方法或变量,然后通过xxx.setAccessible(true);
改变权限,使得可以访问和修改变量或方法。