发表于: 2017-09-02 23:55:02

1 939


今天学习的东西


反射机制


获取类对象的三种方式


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的,但是不能获取继承来的字段。



明天要做的事

接着看


遇到的问题




收获



返回列表 返回列表
评论

    分享到