构建API时,最好对接口进行编码,因此返回CompletionStage似乎是一种最佳方法。但是我意识到在获得CompletionStage之后我碰巧总是调用.toCompletableFuture。在这种情况下,推荐的方法是什么?
答案 0 :(得分:2)
使用CompletionStage
的API用于非阻止使用,因此只有在调用者不以非阻塞方式工作时才需要调用.toCompletableFuture()
。
如果API不是非阻塞的,则应返回普通的旧Future
接口。
答案 1 :(得分:0)
请参阅https://stackoverflow.com/a/49158702/1113842
上的回复就像霍尔格问的那样,你为什么打电话给toCompletableFuture
?
complete
/ cancel
?大多数应用程序提供了自己的完成阶段的机制。因此,没有必要公开这些方法。get
吗?在异步编程中应该避免这种情况。如果两个问题的答案都是肯定的,那么您应该返回CompletionStage
。