【发布时间】:2016-01-21 17:50:47
【问题描述】:
在 Java 8 中,接口或抽象类定义返回 CompletableFuture 而不是返回 Future 的 API 更好吗?考虑到it is ugly converting Future to CompletableFuture 和CompletableFuture 将使调用者更灵活地直接使用函数式样式这一事实,API 只返回Future 的充分理由是什么?
【问题讨论】:
-
我刚刚在 2 分钟前问了这个问题,并且已经有 1 次接近投票了吗?询问编程/设计选择的实际用例有什么问题?
-
我猜它有点宽泛。也许添加用例是什么?
-
用例是我正在设计一个执行文件处理的异步 API,我过去的知识告诉我要返回 Future
,但是在从我链接的其他 SO 问题中学习之后,我觉得Java8 告诉我返回 CompletableFuture 。我不确定,需要帮助。 -
想想你是否真的想让来电者完成你的未来。否则,如果您只想支持相关操作/处理步骤的链接,您可能希望返回
CompletionStage。 -
@jazd 从 Java 9 开始,您可以简单地调用
copy()来获得类似分离的CompletableFuture,或者,您可以返回一个minimalCompletionStage()。后者返回一个无法从外部完成的阶段;调用toCompletableFuture()将再次返回一个新的未来,其完成不会传播回来。
标签: java interface java-8 future completable-future