Java 反射:获取私有方法 - aClass.getDeclaredMethod()详解

aClass.getDeclaredMethod() 是 Java 反射机制中的一个方法,用于获取某个类中指定名称和参数类型的方法,包括私有方法。

语法:

public Method getDeclaredMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
  • name:方法名称。
  • parameterTypes:方法参数类型。

该方法返回指定名称和参数类型的方法对象。如果没有找到,则抛出 NoSuchMethodException 异常。

示例代码:

public class MyClass {
    private void myPrivateMethod(String str, int num) {
        // do something
    }
}

Class<?> aClass = MyClass.class;
Method method = aClass.getDeclaredMethod('myPrivateMethod', String.class, int.class);

以上代码通过反射获取了 MyClass 类中名为 myPrivateMethod 的方法(私有方法),并指定了方法的参数类型为 Stringint

使用方法:

获取到方法对象后,可以使用 invoke() 方法来调用该方法。例如:

Object result = method.invoke(myClassInstance, "Hello", 10);

其中,myClassInstanceMyClass 类的实例对象。

注意:

  • getDeclaredMethod() 方法可以获取所有方法,包括私有方法。
  • 使用反射调用私有方法需要谨慎,因为可能会破坏类的封装性。
  • 在使用 invoke() 方法时,需要确保参数类型与方法参数类型一致。

总结:

aClass.getDeclaredMethod() 是 Java 反射机制中的一个重要方法,它允许开发人员在运行时动态获取类的方法,并进行调用。通过使用该方法,我们可以实现一些灵活的功能,例如动态代理、AOP 等。

Java 反射:获取私有方法 - aClass.getDeclaredMethod()详解

原文地址: https://www.cveoy.top/t/topic/oRzt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录