java中,如何动态改变类的访问权限?

解决方案 »

  1.   

    这是可以的,条件是通过反射来做。比如有个org.test.A类,里面有个doit方法private doit()
    {
    }你通过以下代码取得这个方法,
    A a = new A();
    Method doitMethod = a.getClass().getDeclaredMethod("doit");
    doitMethod.setAccessible(true);
    doitMethod.invoke(a,参数);
    就可以了关键是可以通过setAccessible来修改其权限
      

  2.   

    呵呵,有必要改类吗?能改吗?
    注意啦:类的构造方法可以是public 也可以是 private...
      

  3.   

    反射机制
    http://blog.sina.com.cn/s/blog_495697e60100dwt0.html
      

  4.   

    用反射就可以做到了,可以设置属性和方法的各种访问级别;
    这是可以的,条件是通过反射来做。 
    类似于9L的代码,JDK中有说明
      

  5.   

    没有必要吧???
    http://e188e.cn
      

  6.   


    这个并没有改变方法的权限, 仍然是 private, 只是 JDK5 的反射提供了这样一个开关, setAccessible(true) 能够访问 private 的方法,成员变量等等