在 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);
   }
}

更新於: 18-Feb-2020

15K+ 瀏覽

開啟你的 事業

完成課程獲得認證

開始
廣告
© . All rights reserved.