0

Class Test test = new Test(); のオブジェクトを作成する HelloWorld というクラスがあります。

次に、HelloWorld クラスには、メイン関数と別の関数があります。

public static int passMe(){
    System.out.println("running this function");
    return 1;
}

これは渡そうとする関数です。次を使用して int テストに渡します。

test.getSomeFunction(new Callable<Integer>(){
              public Integer call(){
                  return passMe();
              }
          });

私が持っているテストクラス内:

    public void getSomeFunction(Callable<Integer> someFunction){
        System.out.println(someFunction);
    }

これですべて機能しますが、 passMe() は実行されていません。むしろ、それを参照する方法がわかりません。someFunction を出力すると、次のようになります。

"HelloWorld$1@35a8767"

私の質問は、渡された関数を実行するにはどうすればよいかということです。

4

1 に答える 1

1
    try {
        Integer result = callable.call();
    } catch (Exception e) {
        throw new IllegalStateException(e);
    }

例外はCallable 定義によって強制されるため、処理する必要があります。

passMe関数を渡すのではなく、それを呼び出すことができる呼び出し可能なオブジェクトを渡すことに注意してください。

于 2012-10-01T08:07:51.300 に答える