在一個類中如何調用另一個類的私有方法?
//測試類 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,"傳入參數"); } }
只能通過反射才能調用私有方法