是否能從 Java 的類外部訪問該類的私有方法?


你可以使用 Java 反射包訪問類的私有方法。

步驟 1 − 透過傳遞宣告為私有方法的方法名稱來例項化 java.lang.reflect 軟體包的 Method 類。

步驟 2 − 透過將值 true 傳遞給 setAccessible() 方法來設定方法的可訪問性。

步驟 3 − 最後,使用 invoke() 方法呼叫該方法。

示例

import java.lang.reflect.Method;

public class DemoTest {
   private void sampleMethod() {
      System.out.println("hello");
   }
}

public class SampleTest {
   public static void main(String args[]) throws Exception {
      Class c = Class.forName("DemoTest");
      Object obj = c.newInstance();
      Method method = c.getDeclaredMethod("sampleMethod", null);
      method.setAccessible(true);
      method.invoke(obj, null);
   }
}

更新於:2020 年 2 月 18 日

1.5 萬+瀏覽

啟動你的 職業生涯

完成課程認證

開始吧
廣告