2011-01-13 100 views
0

我想从控制台读取函数名称,然后在该类中调用它。 因此,我不希望它自动发生,而是检查使用“IF”语句的函数。在eclipse中,如何调用从控制台读取的函数?

Exmp. 
_ (CONSOLE) 
BuildDatabase (WRITTEN IN CONSOLE) 
---> What happens in class : Class.BuildDataBase(); 

可以这样做吗? 另一个问题 - 我怎样才能从命令行运行我的班'主?

感谢提前

回答

1

您可以使用该反思:

Method method = YourClass.getMethod(nameReadFromConsole); //no parameters 
method.invoke(null); // invoking without a target object - i.e. static 

从控制台通过运行完成的java command - java ClassName

0

当你说了命令行做u指的是终端? 如果你想运行一个类中的主要方法ü可以叫这个:

java MyClass 

但必须是编译的文件(的.class)

0

,或者您可以编写自定义阅读器控制台(需要这段代码被清理/重构):

public static void main(String[] args) { 
    MyClass instance = new MyClass(); 
    while(true) { 
     System.out.print("> "); 
     String input = new BufferedReader(new InputStreamReader(System.in)).readLine(); 
     Method method = MyClass.getDeclaredMethod(input); 
     Object returnValue = method.invoke(instance); 
     System.out.println(returnValue); 
    } 
} 
  • 编辑以添加 '的readLine' 呼!
+0

如果我想传递参数该怎么办? – 2011-01-13 21:54:57