将Java CompletableFuture转换为TwitterFuture(无任何中间Future)

将Java CompletableFuture转换为TwitterFuture(无任何中间Future),java,scala,Java,Scala,我在scala代码中使用一个java库,它返回一个完整的未来 我必须把它转换成twitter 当然,我可以将CompletableFuture转换为ScalaFuture,然后将ScalaFuture转换为TwitterFuture。但这是一种浪费 我可以直接将CompletableFuture转换为TwitterFuture吗。不清楚你到底想要什么。一些图书馆的标准方法?是寻找它的明显地点,而且似乎没有关于CompletionStage或CompletableFuture的参考 如果您想要代码

我在scala代码中使用一个java库,它返回一个完整的未来

我必须把它转换成twitter

当然,我可以将CompletableFuture转换为ScalaFuture,然后将ScalaFuture转换为TwitterFuture。但这是一种浪费


我可以直接将CompletableFuture转换为TwitterFuture吗。

不清楚你到底想要什么。一些图书馆的标准方法?是寻找它的明显地点,而且似乎没有关于CompletionStage或CompletableFuture的参考

如果您想要代码,那么@Dima是对的——您自己编写代码并不难,比如

导入java.util.concurrent.CompletionStage 导入java.util.function.BiConsumer 导入com.twitter.util.{Future=>TwitterFuture,Promise=>TwitterPromise} 隐式类JavaCompletionStageTwitterOps[A]val jcs:CompletionStage[A]扩展了AnyVal{ def asTwitterimplicit e:ExecutionContext:TwitterFuture[A]={ val promise=新推特promise[A]与双消费者[A,可丢弃]{ 覆盖def acceptvalue:A,ex:Throwable:Unit={ 如果ex==null,则使用此.setValuevalue 否则,请选择此.setExceptionex } } jcs.whenCompletepromise 许诺 } }
如果您已经知道如何将其转换为scala Future,那么可以使用相同的方法直接转换为twitter Future。这两者之间没有任何功能上的区别,只是有些方法有不同的名称,仅此而已。