Javaからコンソールからメソッドを呼び出す方法はありますか?コンソールからメソッドを呼び出す方法はありますか?
入力ファイルの名前を取得するためにargs配列(たとえばargs[0]
)を使用することは可能ですが、Javaがコンソールからのメソッド呼び出しを許可するかどうかはわかりません。
Javaからコンソールからメソッドを呼び出す方法はありますか?コンソールからメソッドを呼び出す方法はありますか?
入力ファイルの名前を取得するためにargs配列(たとえばargs[0]
)を使用することは可能ですが、Javaがコンソールからのメソッド呼び出しを許可するかどうかはわかりません。
あなたはリフレクションを使用して、あなたのプログラムの引数の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)");
私は反射について考えていましたが、特に多くのメソッドをランダムに1つずつ呼び出す場合は、時間がかかります。 – FranXh
@ User1181847どのくらいの時間がかかりますか?それがあなたの主張になると、それはすべて相対的です。 –
コマンドラインからメソッドの実行をトリガーしたいのですか、ほかの何かがバックグラウンドで実行されていますか?
他に何かがある場合、スレッドについて考える必要があります。そうしないと、アプリケーションがコマンドラインでIOを待ってブロックされるためです。
どのように多くのメソッドが呼び出され、どのように動的になりたいかによって、リフレクションを使用できます(クラス名とメソッド名をパラメータとして取り込みます)。
これは明確ではありません。コンソールからint foo(float [] x、Bar b);メソッドを呼び出すことはどういう意味でしょうか? –