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

解决方案 »

  1.   

    请参考JAVA核心技术卷I第179页
      

  2.   

    首先要通过class的getDeclaredXXXXX方法得到Method或者Field~
    然后Method或者Field 的.setAccessible()要设置为true
    才能够调用或者设置读取值
      

  3.   

    对于私有的属性可以采用提供get和set方法去访问啊,共有的话直接new一个该类的对象出来去调用
      

  4.   

    我的意思是指定访问private或者public的属性?
    怎么指定??
      谢谢le !!!
      

  5.   

    谢谢了!!很感谢hoslay 的讲解,您的意思我明白了,谢谢!但是我的初衷是我只需要private的属性!而有很多其他的public属性,遍历的时候消耗太多,
    我怎么样才可以指定访问private的属性呢???
      

  6.   

    贴一段代码给lz
    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));
        }
    }
      

  7.   

    对于私有的属性可以采用提供get和set方法去访问
      

  8.   

    哦,各位大虾!!实在抱歉!
        我的意思其实是指定private修饰符修饰的属性访问!只要是private修饰的属性都访问,跳过其他修饰符!
        抱歉!我说的不是很清楚!!