gpt4 book ai didi

java - 将 Java CompletableFuture 转换为 TwitterFuture(没有任何中间 Future)

转载 作者:行者123 更新时间:2023-12-02 11:48:23 25 4
gpt4 key购买 nike

我正在我的 scala 代码中使用 java 库,该库返回 CompletableFuture。

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html

我必须将其转换为 TwitterFuture

https://twitter.github.io/util/guide/util-cookbook/futures.html

当然,我可以将 CompletableFuture 转换为 ScalaFuture,然后将 ScalaFuture 转换为 TwitterFuture。但这样就浪费了。

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

最佳答案

目前尚不清楚您具体要求什么。某个库中的一些标准方法? Twitter Bijection是寻找它的明显位置,并且似乎没有 CompletionStageCompletableFuture

的引用

如果你想要代码,那么@Dima是对的 - 自己编写它并不难,例如

import java.util.concurrent.CompletionStage
import java.util.function.BiConsumer
import com.twitter.util.{Future => TwitterFuture, Promise => TwitterPromise}

implicit class JavaCompletionStageTwitterOps[A](val jcs: CompletionStage[A]) extends AnyVal {
def asTwitter(implicit e: ExecutionContext): TwitterFuture[A] = {
val promise = new TwitterPromise[A] with BiConsumer[A, Throwable] {
override def accept(value: A, ex: Throwable): Unit = {
if (ex == null) this.setValue(value)
else this.setException(ex)
}
}
jcs.whenComplete(promise)
promise
}
}

关于java - 将 Java CompletableFuture 转换为 TwitterFuture(没有任何中间 Future),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48052679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com