发表于: 2017-09-02 23:55:02
1 938
今天学习的东西
反射机制
获取类对象的三种方式
1. Class.forName
2. Hero.class
3. new Hero().getClass()
反射机制是通过拿到Product的“类对象”,然后再通过类对象获取“构造器对象”再通过构造器对象创建一个对象
String className = "charactor.Hero";
//类对象
Class p=Class.forName(className);
//构造器
Constructor c= pClass.getConstructor();
//通过构造器实例化
Hero h2= (Hero) c.newInstance();
通过反射修改属性的值
//获取类Hero的名字叫做name的字段
Field f1= h.getClass().getDeclaredField("name");
//修改这个字段的值
f1.set(h, "teemo");
//打印被修改后的值
其中
getField 只能获取public的,包括从父类继承来的字段。
getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。
明天要做的事
接着看
遇到的问题
收获
评论