当给定方法名称为字符串时,如何调用Java方法?

如果我有两个变量:

Object obj;

String methodName = "getName";

在不知道的类的情况下obj,如何调用由其标识的方法methodName?

被调用的方法没有参数,并且有String返回值。

回答:

java.lang.reflect.Method method;

try {

method = obj.getClass().getMethod(methodName, param1.class, param2.class, ..);

} catch (SecurityException e) { ... }

catch (NoSuchMethodException e) { ... }

参数标识你需要的非常特定的方法(如果有多个重载可用,如果该方法没有参数,则仅给出methodName)。

然后,你通过调用该方法

try {

method.invoke(obj, arg1, arg2,...);

} catch (IllegalArgumentException e) { ... }

catch (IllegalAccessException e) { ... }

catch (InvocationTargetException e) { ... }

同样,.invoke如果没有,请忽略中的参数。

以上是 当给定方法名称为字符串时,如何调用Java方法? 的全部内容, 来源链接: utcz.com/qa/428075.html

回到顶部