2011-09-15 11 views
0

私がタスクを送信し、futureTask.get()がnullを返した場合、Callableオブジェクトで送信した内容を別の方法で処理したいと思います。デバッグすると、私のFutureには "sync"というプライベートな最終メンバがあることがわかります。 「同期」には、Callableで送信した元のデータを持つ私のCallableが含まれています。残念ながら、私はそれに到達することはできません。擬似コードでnullの結果を持つjava.util.concurrent.Futureの処理

...

Callable callable = new Callable(myData); 

Future future = executor.submit(callable); 

if (future.get() == null) 
{ 
    //what I would like to have if the "sync" member was available.. 
     String alreadySubmittedData = future.sync.callable.myData; 
} 

これを行う方法があるはずのように思えますか?ありがとう。

答えて

1

CallableFutureはいずれにしてもインターフェイスなので、自分の周りにその情報を保持しておく必要があります(たとえば、未来をマップ内の呼び出し可能コードに関連付けるなど)。

0

変数コール可能からmyDataを取得できないのはなぜですか?

+0

回答ではなくコメントに関するこの質問を投稿することを検討してください – adarshr

関連する問題