Java中有没有办法从控制台调用方法?
我知道可以使用args数组(例如args[0]
)来获取输入文件的名称,但我不知道Java是否允许来自控制台的方法调用。
答案 0 :(得分:3)
好吧,您可以使用反射并将您想要调用的方法的名称作为程序的参数之一传递,然后使用它反射性地调用它。
根据您真正想要做的事情,您可能会考虑使用BeanShell这样的东西,它可以让您以更简单的方式从Beanshell控制台与Java交互,前提是您的问题是“如何使用Java一个控制台?“而不是如何以编程方式执行此操作。
例如,从Beanshell控制台我可以做如下的事情:
print(eval("Math.max(1,2)"));
它会让我的控制台产生2。
您还可以将beanshell.jar添加到应用程序类路径中,并以编程方式使用eval方法。
import bsh.Interpreter;
//...
Interpreter i = new Interpreter();
Integer r = (Integer) i.eval("Math.max(1,2)");
答案 1 :(得分:0)
您是否只想从命令行触发方法的执行,还是在后台运行其他东西?
如果还有其他内容,那么您需要考虑线程,否则您的应用程序将被阻止在命令行上等待IO。
根据要调用的方法数量以及想要的动态程度...您可以使用反射(它将类名和方法名称作为参数并执行它们)。