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

问题:

如果我有两个变量:

Object obj;
String methodName = "getName";

不知道obj的类,我如何调用methodName标识的方法?
被调用的方法没有参数和String返回值。是a getter for a Java bean

回答:

从臀部编码,就像:

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 Reflection

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do I invoke a Java method when given the method name as a string?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

68 − 62 =