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

时间:2011-01-13 21:19:16

标签: java eclipse command-line console

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

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

可以吗? 另一个问题 - 如何从命令行运行我的类'main?

提前致谢

3 个答案:

答案 0 :(得分:1)

您可以使用反射:

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

从控制台运行是通过java command - java ClassName

完成的

答案 1 :(得分:0)

当你说命令行时你的意思是终端? 如果你想在类中运行main方法,你可以调用它:

java MyClass

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

答案 2 :(得分: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'电话!