如何从Java类外部调用私有方法

Hamed Rajabi:

我有一个Dummy具有称为的私有方法sayHello我想sayHello从外面打电话Dummy我认为应该可以反思,但是我得到了IllegalAccessException有任何想法吗???

Pshemo:

利用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章