小编典典

将方法名称作为字符串给出时,如何调用 Java 方法?

all

如果我有两个变量:

Object obj;
String methodName = "getName";

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

被调用的方法没有参数和String返回值。它 是 Java bean 的吸气剂


阅读 106

收藏
2022-03-02

共1个答案

小编典典

从臀部编码,它会是这样的:

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
反射

2022-03-02