ฉันสับสนเกี่ยวกับเรื่องที่ฉันควรจะแก้ไขเรื่องนี้อยู่ในสถานการณ์ไม่จอดปิดทางเห็น.
พิจารณาสองคนนักแสดง Actor1
แล้ว Actor2
ภายใน Actor1
Map<Int, Int> foo() {
List<String> finalList = foo_2();
Map<Int, Int> finalMap = // do stuff with finalList to get Map<Int, Int>;
return finalMap;
}
List<String> foo_2() {
CompletableFuture<List<String>> Querylist = ask(Actor2)
Querylist.get();
return QueryList;
}
ตอนนี้ภายใน foo_2, Querylist.get()
เป็นการปิดกั้นโทรมา ฉันต้องแก้ไขเรื่องนี้ในคนที่ไม่ใช่การปิดกั้นเห็น. ฉันสร้างข้อความอะแดปเตอร์สำหรับ Actor2
ข้างใน Actor1
ดังนั้นมีจดหมายนั่น Actor2
ส่งจะถูกจัดการโดย Actor1
.
ฉันเคยต่อไปนี้เข้ามาเพื่อแก้ไขรายการปิดกั้นโทรหา
Map<Int, Int> foo() {
CompletionStage<List<String>> finalList = foo_2();
finalList.whenComplete(
// what to do here?
)
// Map<Int, Int> finalMap = // do stuff with finalList to get Map<Int, Int>;
return finalMap;
}
CompletionStage<List<String>> foo_2() {
CompletionStage<List<String>> Querylist = ask(Actor2)
return QueryList;
}
ฉันไม่แน่ใจว่าจะอย่างถูกต้องใช้ CompletionStage สร้างเพื่อให้เหมือนผลลัพธ์ฉันกับจอดปิดทางอนาคต.ได้()โทรมา