1

文字列をメソッドとして実行することは可能ですか?

サーバーとクライアントがあるとしましょう。クライアントは"sayHello()"文字列を送信します。クライアントがメソッドを持っている場合、クライアントはこの文字列をクライアント側のメソッドとして実行できますprivate void sayHello()か?

文字列を特定の値と比較してメソッドを呼び出し、これに基づいて関数を呼び出すことができることはわかっています。しかし、私は上記のようなものを正確に調べています。

4

5 に答える 5

5

これは、 Javaリフレクションに完全に一致するように聞こえます。ただし、Javaを使用してリモートメソッド呼び出しを実行するためのフレームワークは多数あり、車輪の再発明を行う可能性が高いことに注意してください。

于 2012-10-16T08:44:17.440 に答える
3

JavaReflectionはそれを行うことができます。

また、記載されている要件にさらに固有のRemote Method Invocation(RMI)も確認してください。

于 2012-10-16T08:45:38.373 に答える
2

リフレクションのコーディングはそれほど難しくありません。

public void invokeByName(String methName) {
  try { getClass().getDeclaredMethod(methName).invoke(this); } 
  catch (RuntimeException e) { throw e; }
  catch (Exception e) { throw new RuntimeException(e); }
}
于 2012-10-16T08:53:46.757 に答える
0

簡潔な例:

class Foo {
    public static void main(String[] args) throws Exception {
        String methodStr = "sayHello";
        Foo foo = new Foo();
        foo.getClass().getDeclaredMethod(methodStr).invoke(obj);
    }

    private void sayHello() {
        System.out.println("hello stackoverflow!");
    }
}
于 2012-10-16T08:53:30.627 に答える
0

はい、を参照java.beans.Statementしてくださいjava.beans.Expression

于 2012-10-16T09:26:25.633 に答える