私は、Javaで@AsyncアノテーションとCompletableFuturesを使用していくつかの呼び出しを非同期にしています。非同期呼び出しでオブジェクトを作成するPojoがいくつかありますが、リストに結果を収集しようとすると、EclipseはPojoのリストをObjectのリストに変更したいと思っています。ストリームからの応答をデフォルトにしているCompletableFutureであるかどうかを理解する。このCollectors.toListにオブジェクトのリストを期待するデフォルト設定は何ですか?
List<Pojo1> crudResponse = null;
List<Pojo1> listOfIterations = new ArrayList<>();
//populates object with multiple entries in list
listOfIteration = populateIterationObject(param);
crudResponse = listOfIterations.stream()
.map(str -> CompletableFuture.supplyAsync(() -> {
try {
return async.hitCrud(str);
}catch(RequestProcessingException e){
log.error(e);
}
return function;
}))
.map(CompletableFuture::join)
.collect(Collectors.toList());
}
//async class
public CompletableFuture<Pojo1> hitCrud(Pojo1 iteration) throws RequestProcessingException {
try {
String response;
Pojo1 pojoResponse;
response = connectToCrud(iteration);
if(response != null) {
pojoResponse.add(response);
}
}catch(Exception ex){
log.error(ex);
}
return CompletableFuture.completedFuture(pojoResponse);
}
私はPojo1のオブジェクトを返すようにする方法を打つ、まだ私はCollectors.toListを(使用してリストを作成しようとすると)私が働くことができる<Object>
のリストを持っているように私に期待していますが、より多くかかります私が非同期呼び出しから返す各応答を引き出してキャストするコード。
これはデフォルトのObjectであるCompletableFutureですか?もしそうなら、それをPojo1のタイプにデフォルト設定することは可能ですか?
編集:私はIDEで見てい エラー:
Type mismatch: cannot convert from List<Object> to List<Pojo1>
いいえ、それは混乱のエディタだと型を推論することができません。彼らは時々それをする。 – Kayaman
実際、あなたには型安全性の問題があるようですが、例の不完全さのために確信が持てません。私は欠けているビットのほとんどをダミーにすることができましたが、 'function'のタイプは何ですか? –