2012-05-02 241 views
1

Java中调用控制台方法的方法是什么?Java中有没有一种方法可以从控制台调用方法?

我知道可以使用args数组来获取输入文件的名称,例如args[0],但我不知道Java是否允许来自控制台的方法调用。

+0

这个不清楚;调用一个方法'int foo(float [] x,Bar b);'从控制台调用什么? –

回答

3

那么,你可以使用反射,并将想要调用的方法的名称作为程序的参数之一,然后用它反射地调用它。

取决于你真正想做的事,你可能要考虑像BeanShell这将让你与Java从更简单的方法,BeanShell的控制台交互,前提是你的问题是“如何从一个控制台中使用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)"); 
+0

我正在考虑反思,但它只需要很多时间,特别是当你想要调用许多方法时,一个接一个地随机调用。 – FranXh

+0

@ User1181847多少时间太多?当涉及到你的断言时,这一切都是相对的。 –

0

你只是想从命令行触发方法的执行还是有其他东西在后台运行?

如果还有别的东西,那么你需要考虑线程,否则你的应用程序将被阻塞在命令行上等待IO。

根据需要调用多少个方法以及您希望如何动态...您可以使用反射(它将类名称和方法名称作为参数并执行它们)。

相关问题