在定义API时我应该返回CompletableFuture还是Future?

der*_*dji 11 java future interface java-8 completable-future

在Java 8中,接口或抽象类更好地定义API返回CompletableFuture而不是返回Future?考虑到它是丑陋转化FutureCompletableFuture和事实CompletableFuture将会给调用者直接使用功能的风格更加灵活,这可能是一个API只返回一个很好的理由Future

ass*_*ias 2

我的 2 克拉:

  • 通过返回 Future,您可以保留选择权,并且可以返回 Future 或 CompletableFuture - 从调用者的角度来看,这没有什么区别。
  • 通过返回 CompletableFuture,您为调用者提供了更多选择(他们获得更多方法),但您也承诺返回该类型的 Future - 如果两年后您意识到返回 BetterFuture 更有意义,您将不得不更改 API ,这不好。

因此,您可能应该评估您将来想要返回 CompletableFuture 以外的东西的可能性(哈哈)并做出相应的决定。