Class.getMethod("methodName"),不知道参数是什么,怎么获取该方法
时间: 2024-04-30 22:22:46 浏览: 18
可以使用Class.getDeclaredMethods()方法获取该类中所有的方法,然后遍历方法数组,判断方法名称是否匹配需要查找的方法名称,如果匹配则返回该方法对象。示例代码如下:
```java
Method[] methods = MyClass.class.getDeclaredMethods();
for (Method method : methods) {
if (method.getName().equals("methodName")) {
// 找到了需要查找的方法
return method;
}
}
```
其中,MyClass是需要查找方法的类名,"methodName"是需要查找的方法名称。注意,如果该类中存在重载方法,需要根据具体情况判断参数类型和个数来选择对应的方法。
相关问题
Class.getMethod("methodName")报错java.lang.NoSuchMethodException,但是类中存在methodName方法
可能是因为方法的参数列表不匹配。在Java中,方法的唯一标识符除了方法名外还包括参数列表。如果方法的参数列表不匹配,即使方法名相同也会报NoSuchMethodException异常。请检查方法的参数列表,确保与getMethod()方法中传入的参数列表一致。如果需要调用的方法有重载,需要指定具体的参数类型来获取对应的方法。
Method method = clazz.getMethod("methodName", param1Type.class, param2Type.class, ...);这句代码中()中参数含义
这句代码中,()中的参数是用来获取Java类中的指定方法的,包括方法名和参数类型。其中,clazz是要获取方法的Java类的Class对象,"methodName"是要获取的方法的方法名。param1Type.class, param2Type.class, ... 是方法的参数类型,用来确定方法的重载。这些参数类型应该是Class对象,例如String.class表示String类型的参数。如果方法没有参数,则可以省略这部分。