私は java.util.concurrent.Future が初めてで、いくつか質問があります。Future を使用してサービスを呼び出す場合、どの要素がサービスの呼び出しに使用されたかを知るにはどうすればよいですか?
次に例を示します。
IDごとに、java.util.concurrent.Futureを使用してサービスを呼び出し、追加のデータを入力しています。
Collection< Future< ObjectX>> future = new ArrayList< Future< ObjectX>>();
編集###
List< ObjectY> serviceResult= new ArrayList< ObjectY>(); for (ObjectX obj: ids) { future.add(getAsyncInfo(obj); } //Because I have a lot of ids i need to call the service @async @Async public Future< ObjectY> getAsyncInfo(ObjectX obj){ return new AsyncResult<ObjectY>(callService(obj)); ... }
応答を取得する
for (Future<ObjectY> futureResult : future)
{
serviceResult.add(futureResult.get());
}
この段階では、結果のリストがあり、どの結果がどの ID に属しているかわかりません
ids.get(0).setResult(serviceResult.get(0))????
ids.get(0).setResult(serviceResult.get(1))????
ids.get(0).setResult(serviceResult.get(2))????
...
ありがとうございました!