2012-05-02 14 views
1

Javaからコンソールからメソッドを呼び出す方法はありますか?コンソールからメソッドを呼び出す方法はありますか?

入力ファイルの名前を取得するためにargs配列(たとえばargs[0])を使用することは可能ですが、Javaがコンソールからのメソッド呼び出しを許可するかどうかはわかりません。

+0

これは明確ではありません。コンソールからint foo(float [] x、Bar b);メソッドを呼び出すことはどういう意味でしょうか? –

答えて

3

あなたはリフレクションを使用して、あなたのプログラムの引数の1つとして呼び出すメソッドの名前を渡してから、それを反射的に呼び出すことができます。

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)"); 
+0

私は反射について考えていましたが、特に多くのメソッドをランダムに1つずつ呼び出す場合は、時間がかかります。 – FranXh

+0

@ User1181847どのくらいの時間がかかりますか?それがあなたの主張になると、それはすべて相対的です。 –

0

コマンドラインからメソッドの実行をトリガーしたいのですか、ほかの何かがバックグラウンドで実行されていますか?

他に何かがある場合、スレッドについて考える必要があります。そうしないと、アプリケーションがコマンドラインでIOを待ってブロックされるためです。

どのように多くのメソッドが呼び出され、どのように動的になりたいかによって、リフレクションを使用できます(クラス名とメソッド名をパラメータとして取り込みます)。

関連する問題