getDeclaredMethod的两个参数
在 Java 中,Method.getDeclaredMethod(String name, Class<?>... parameterTypes) 方法有两个参数:
- name 参数是 String 类型,表示要获取的方法的名称。
- 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) 方法可以让你在运行时获取一个类中声明的方法,并对其进行操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)