Java 在eclipse中,如何调用从控制台读取的函数?

Java 在eclipse中,如何调用从控制台读取的函数?,java,eclipse,command-line,console,Java,Eclipse,Command Line,Console,我想从控制台读取函数名,然后在该类中调用它。 因此,我不希望使用“IF”语句检查哪个函数,而是希望它自动发生 Exmp. _ (CONSOLE) BuildDatabase (WRITTEN IN CONSOLE) ---> What happens in class : Class.BuildDataBase(); 能做到吗? 另一个问题-如何从命令行运行类的main 谢谢大家您可以使用反射: Method method = YourClass.getMethod(nam

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

Exmp.  
_ (CONSOLE)  
BuildDatabase (WRITTEN IN CONSOLE)  
---> What happens in class : Class.BuildDataBase(); 
能做到吗? 另一个问题-如何从命令行运行类的main


谢谢大家

您可以使用反射:

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

从控制台运行是通过-
java类名来完成的,当你说命令行时,你是指终端吗?
如果要在类u中运行main方法,可以调用:

java MyClass

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

或者您可以为控制台编写自定义读取器(此代码需要清理/重构):

  • 已编辑以添加“readLine”调用
如果我想传递参数怎么办?
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);
    }
}