getDeclaredMethod的两个参数

在 Java 中,Method.getDeclaredMethod(String name, Class<?>... parameterTypes) 方法有两个参数:

  1. name 参数是 String 类型,表示要获取的方法的名称。
  2. parameterTypes 参数是 Class<?> 类型的可变参数,表示要获取的方法的参数类型。

这个方法会返回一个 Method 对象,表示由这个类声明的、具有指定名称和参数类型的方法。
请注意,这个方法只会在当前类中查找方法,并不会查找超类或接口中的方法。如果找不到对应的方法,则会抛出 NoSuchMethodException 异常。
例如:

Class<?> clazz = Class.forName("java.util.ArrayList");
Method m = clazz.getDeclaredMethod("add", Object.class);

这段代码会获取 ArrayList 类中声明的方法 add(Object),并且返回一个 Method 对象。
在参数类型中,如果方法的参数是一个数组,则应该传入数组的 Class 对象。例如,如果要获取 void add(int[] arr) 方法,则需要这样调用:

Method m = clazz.getDeclaredMethod("add", int[].class);

如果要获取一个重载的方法,则可以传递多个 Class<?> 实例,表示不同的参数类型,例如:

Method m = clazz.getDeclaredMethod("add", int.class, double.class);

但是,如果有多于一个匹配的方法,则会抛出 AmbiguousException 异常。
总的来说,Method.getDeclaredMethod(String name, Class<?>... parameterTypes) 方法可以让你在运行时获取一个类中声明的方法,并对其进行操作。

posted @   sssabd  阅读(799)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示