怎么用java在主类中调用另一个类的私有方法

如题所述

//测试类
class MyTest {

    public void publicMethod(Object o) {
        System.out.println("调用的公共方法 " + o);
    }

    /**
     * 类的私有方法
     */
    private void privateMethod(Object o) {
        System.out.println("调用了私有方法 " + o);
    }

}

新建main方法

import java.lang.reflect.Method;


public class ReflectionTest {

    public static void main(String args[]) throws Exception{

        MyTest myTest = new MyTest();

        // 调用公共方法
        myTest.publicMethod("传入参数");
        // 编译报错
        // myTest.privateMethod();

        // 获得类的私有方法
        Method method = MyTest.class.getDeclaredMethod("privateMethod",Object.class);
        // 开启私有访问权限
        method.setAccessible(true);
        method.invoke(myTest,"传入参数");

    }
}

只能通过反射才能调用私有方法

温馨提示:答案为网友推荐,仅供参考