如何在 Java 中从另一个类调用私有方法

2024 年 8 月 29 日 | 阅读 3 分钟

您可以通过更改类的运行时行为,从类外部调用私有方法。

借助 java.lang.Class 类和 java.lang.reflect.Method 类,我们可以从任何其他类调用私有方法。

Method 类所需的方法

1) public void setAccessible(boolean status) throws SecurityException 设置方法的可访问性。

2) public Object invoke(Object method, Object... args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException 用于调用方法。

Class 类所需的方法

1) public Method getDeclaredMethod(String name,Class[] parameterTypes)throws NoSuchMethodException,SecurityException: 返回一个 Method 对象,该对象反映由此 Class 对象表示的类或接口的指定声明方法。

从另一个类调用私有方法的示例

让我们看一个简单的例子,从另一个类调用私有方法。

文件:A.java

文件:MethodCall.java

输出

hello java

从另一个类调用参数化私有方法的另一个示例

让我们看一个从另一个类调用参数化私有方法的示例

文件:A.java

文件:M.java

输出

64

访问类的私有构造函数

我们知道类的构造函数是一种特殊的方法,用于实例化类。要访问私有构造函数,我们使用方法 getDeclaredConstructor()。 getDeclaredConstructor() 用于访问类的无参数构造函数以及参数化构造函数。以下示例显示了相同的内容。

文件名: PvtConstructorDemo.java

输出

Vehicle Id: 20
Vehicle Name: Indica
 -------------------------- 
Vehicle Id: 30
Vehicle Name: Alto

下一主题Java 日期