在构建 API 时,最好编写接口代码。因此似乎返回 CompletionStage 是最佳方法。但我发现在获取 CompletionStage 后,我总是调用 .toCompletableFuture。在这种情况下,推荐采用什么方法?
toCompletableFuture
?
complete
/cancel
它吗?大多数应用程序提供自己的机制来完成阶段。因此,没有必要公开这些方法。get
吗?这应该在异步编程中避免使用。CompletionStage
。使用CompletionStage
的API是用于非阻塞使用的,因此只有在调用方不以非阻塞方式工作时才需要调用.toCompletableFuture()
。
如果API不是非阻塞的,则应返回普通的Future
接口。
toCompletableFuture()
… - HolgerCompletionStage
定义了38个方法,而Future
接口定义了另外五个。如果你总是需要剩下的八个CompletableFuture
特定方法,那么针对接口进行编码确实不适合你。 - Holger