2016-12-18 1 views
2

私は、それに設定されたコンテキストを持つSettable Futureオブジェクト "temp"を持っています。また、temp.addListener(new Runnable{...})メソッドが呼び出され、基本的にリスナーが登録されます。しかし、最終的に例外が発生すると、temp.setException()が呼び出されます。 setExceptionが呼び出された場合、リスナーは登録解除されるか、コンテキストがクリアされますか(例外が設定された後は、基本的にSettable Futureオブジェクトが破損しますか?SetTableメソッドが呼び出されると、Settable Futureオブジェクトはどうなりますか?

  1. temp.setContext({temp.set(//some value is set if everything goes right) || temp.setException(//set exception if something comes up)});

  2. temp.addListener(new Runnable{ run(){temp.get()}})

答えて

4

あなたがsetException()を呼び出し、ListenableFuturewill run its listener - :

コードの流れは次のようなものです。その場合、でないコードをに書き込む場合は、addListenerの代わりにFutures.addCallbackを使用できます。 (addCallbackは、成功の場合にのみ、または失敗の場合にのみ実行されるコードを指定することができます)

コンテキストの状況について:コンテキストはListenableFuture APIの一部ではありません。私はそれがあなたか別の図書館によって追加されたのか分かりません。あなたはそのクラスに相談して、その動作を調べる必要があります。

関連する問題