是否能从 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 万+浏览

启动你的 职业生涯

完成课程认证

开始吧
广告