黑马程序员技术交流社区

标题: 反射 [打印本页]

作者: xiexie758    时间: 2015-10-31 23:24
标题: 反射
反射得理解透才能吃的消啊...

作者: 黑夜中那颗星    时间: 2015-11-1 00:18
不要想的那么麻烦,其实就是对类的解剖,可以取出所有的属性和方法
思路清晰就行,比如我们改变一个名为num整型变量的值
Class Demo{
private int num;
}
第一步:肯定是获取字节码对象 Class cla = Class.forName("Demo");我这里就不写包名了,要写完整的包名.Demo
第二步:获取Demo对象 Demo demo = (Demo)cla.newInstance();
第三步:获取变量  Field field = cla.getDeclaredField("num");因为是权限是私有的,所以要用这个方法获取,如果不是私有的可以用cla.getField方法就行了
第四步:设置成可访问的 field.f.setAccessible(true);
第五步:设置值就行了 field.set(demo,100);  两个参数,第一个参数是对象,要把值设置在哪个对象上,第二个是需要设置的值

多做几遍反射方面的题就有思路了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2