基于String的调用方法

时间:2014-04-30 00:24:34

标签: java methods

想象一下,我有String X。我怎么能在java中调用方法X()?一个示例实现(这不是我的应用程序,因为这个问题更具理论性,并且没有特定的应用程序):

我有一个控制台线程序。扫描仪对象用于输入。我们的程序中有1000个方法,我们需要控制台中的用户能够按名称执行这些方法。例如(psuedocode),

public static void main(String[] args) {
   // string X is prompted to be either doBlah, getBlah, etc...
   String X = keyScanner.next();
   execute(X + "()"); //psuedocode for what I would like to do
}
public void doBlah() {}
public void getBlah() {}
public void letNooo() {}
// etc... (just random method names, no particular pattern)

我怎么能用Java或任何语言做到这一点?谢谢。

1 个答案:

答案 0 :(得分:1)

你必须使用反射:

Method m = Main.class.getMethod("doBlah");
m.invoke(new Main(), null)

您可以添加更多其他参数来检索方法并调用它,所有这些参数都可以找到here