我有一个Dummy
具有称为的私有方法的类sayHello
。我想sayHello
从外面打电话Dummy
。我认为应该可以反思,但是我得到了IllegalAccessException
。有任何想法吗???
利用setAccessible(true)
使用其之前的Method对象的invoke
方法。
import java.lang.reflect.*;
class Dummy{
private void foo(){
System.out.println("hello foo()");
}
}
class Test{
public static void main(String[] args) throws Exception {
Dummy d = new Dummy();
Method m = Dummy.class.getDeclaredMethod("foo");
//m.invoke(d);// throws java.lang.IllegalAccessException
m.setAccessible(true);// Abracadabra
m.invoke(d);// now its OK
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句