想象一下,我有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或任何语言做到这一点?谢谢。
答案 0 :(得分:1)
你必须使用反射:
Method m = Main.class.getMethod("doBlah");
m.invoke(new Main(), null)
您可以添加更多其他参数来检索方法并调用它,所有这些参数都可以找到here。