首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

反照怎样指定访问类的私有属性或方法

2011-12-19 
反射怎样指定访问类的私有属性或方法如题:有一个类,类中有共有的属性和方法若干,私有的属性和方法若干,怎

反射怎样指定访问类的私有属性或方法
如题:有一个类,类中有共有的属性和方法若干,私有的属性和方法若干,怎样指定访问私有的或者是共有的属性或方法呢??
  各位大虾!!谢谢了

[解决办法]
请参考JAVA核心技术卷I第179页
[解决办法]
首先要通过class的getDeclaredXXXXX方法得到Method或者Field~
然后Method或者Field 的.setAccessible()要设置为true
才能够调用或者设置读取值
[解决办法]
对于私有的属性可以采用提供get和set方法去访问啊,共有的话直接new一个该类的对象出来去调用
[解决办法]
贴一段代码给lz

Java code
import java.lang.reflect.*;class  AA{    private int i= 10;}class BB extends AA{    private int i= 8;}class CC extends BB{    private int i = 6;}public class Test {    public Test() {    }    public static void main(String[] args) throws Exception{        CC o = new CC();        Class c = o.getClass();        Class b = c.getSuperclass();        Class a = b.getSuperclass();        Field ci = c.getDeclaredField("i");        Field bi = b.getDeclaredField("i");        Field ai = a.getDeclaredField("i");        ci.setAccessible(true);        bi.setAccessible(true);        ai.setAccessible(true);        System.out.println(ci.getInt(o));        System.out.println(bi.getInt(o));        System.out.println(ai.getInt(o));    }}
[解决办法]
对于私有的属性可以采用提供get和set方法去访问

热点排行