当给定方法名称为字符串时,如何调用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