Java反射可以通过使用getDeclaredMethod()
方法来获取私有方法。getDeclaredMethod()
方法可以获取指定名称和参数类型的方法,包括私有方法。
以下是一个示例代码,演示了如何使用反射获取并调用私有方法:
import java.lang.reflect.Method;
public class ReflectionExample {
private void privateMethod() {
System.out.println("私有方法被调用");
}
public static void main(String[] args) throws Exception {
// 获取类的Class对象
Class<ReflectionExample> clazz = ReflectionExample.class;
// 获取指定名称的私有方法
Method privateMethod = clazz.getDeclaredMethod("privateMethod");
// 设置私有方法可访问
privateMethod.setAccessible(true);
// 创建类的实例
ReflectionExample example = clazz.newInstance();
// 调用私有方法
privateMethod.invoke(example);
}
}
在上述代码中,getDeclaredMethod()
方法用于获取privateMethod()
方法,setAccessible(true)
方法用于设置私有方法可访问,invoke()
方法用于调用私有方法。
注意:在使用反射调用私有方法时,需要设置私有方法可访问,否则会抛出IllegalAccessException
异常。