反射的编程思想
在类的运行期间,通过对class对象的解析,可以获取这个类的属性,方法,构造函数,并执行获取
属性,构造函数和方法,主要用于构建平台和框架
获取class对象的三种方式
1 类名.class
2,对象名.getclass
3,class.forname(包名.类名)
常用第三种,第一种需要导包,依赖强,不导包会报错
第二种已经有对象了还要反射干啥
在使用第三种的时候回有classnotfoundexception的检查异常
getDeclaredFields()获取所有属性
getDeclaredField()获取单个属性
通过暴力访问setAccessible()可以直接访问类中私有的属性
获取方法getDeclaredMethod(方法名,参数类型.class) invoke()执行方法
newInstance()的使用有局限,
因为它生成对象只能调用无参的构造函数