日期:2014-05-19  浏览次数:20688 次

求java大牛帮忙解答
java中,如何动态改变类的访问权限?

------解决方案--------------------
Java code

可以在你的代码里加个标志位 

动态改变这个 标志, 你调用的方法前先判断这个标志就可以了

------解决方案--------------------
这是可以的,条件是通过反射来做。

比如有个org.test.A类,里面有个doit方法

private doit()
{
}

你通过以下代码取得这个方法,
A a = new A();
Method doitMethod = a.getClass().getDeclaredMethod("doit");
doitMethod.setAccessible(true);
doitMethod.invoke(a,参数);
就可以了

关键是可以通过setAccessible来修改其权限
------解决方案--------------------
用反射就可以做到了,可以设置属性和方法的各种访问级别;
这是可以的,条件是通过反射来做。 
类似于9L的代码,JDK中有说明


探讨
这是可以的,条件是通过反射来做。

比如有个org.test.A类,里面有个doit方法

private doit()
{
}

你通过以下代码取得这个方法,
A a = new A();
Method doitMethod = a.getClass().getDeclaredMethod("doit");
doitMethod.setAccessible(true);
doitMethod.invoke(a,参数);
就可以了

关键是可以通过setAccessible来修改其权限

------解决方案--------------------
探讨
这是可以的,条件是通过反射来做。

比如有个org.test.A类,里面有个doit方法

private doit()
{
}

你通过以下代码取得这个方法,
A a = new A();
Method doitMethod = a.getClass().getDeclaredMethod("doit");
doitMethod.setAccessible(true);
doitMethod.invoke(a,参数);
就可以了

关键是可以通过setAccessible来修改其权限