0

このチュートリアルhttps://developers.google.com/web-toolkit/doc/latest/tutorial/RPCを実行すると、コールバック オブジェクトを設定するには、次のことを行う必要があることが言及されています。

// Set up the callback object.
AsyncCallback<StockPrice[]> callback = new AsyncCallback<StockPrice[]>() {
  public void onFailure(Throwable caught) {
    // TODO: Do something with errors.
  }

  public void onSuccess(StockPrice[] result) {
    updateTable(result);
  }
};

ただし、AsyncCallback はインターフェイスであることに気付きました。私の知る限り、インターフェイスをインスタンス化できませんでした。これはどのように可能ですか?

4

2 に答える 2

4

これは、匿名クラスを使用して Java でコールバックを実装する例です。これは、そのインターフェイスを実装するクラスを定義することと同じです。明確にするために、これは:

new AsyncCallback() {
    ...
}

これと同等です:

public class MyCallback implements AsyncCallback {
    ...
}

実際、必要に応じて、別の Java ファイルに独自のファイルを作成し、それを呼び出して、次のようにすることもできます。classMyCallback

AsyncCallback<StockPrice[]> callback = new MyCallback();

それはすべて同じです。

于 2012-04-25T17:50:26.240 に答える
1

これは、そのインターフェイスの匿名内部クラス実装の場合です。

実証されたアプローチは、さまざまなリスナーとコールバックを実装するために非常に頻繁に使用されます。このトピックの詳細については、こちらを参照してください。

于 2012-04-25T17:40:39.243 に答える