scala.jdk.FutureConverters
работает на CompletableFuture
, поэтому попробуйте сначала преобразовать KafkaFuture
в CompletableFuture
, например,
implicit class KafkaFutureToCompletableFuture[T](kafkaFuture: KafkaFuture[T]) {
def toCompletableFuture: CompletableFuture[T] = {
val wrappingFuture = new CompletableFuture[T]
kafkaFuture.whenComplete((value, throwable) => {
if (throwable != null) {
wrappingFuture.completeExceptionally(throwable)
}
else {
wrappingFuture.complete(value)
}
})
wrappingFuture
}
}
Теперь мы можем позвонить toCompletableFuture.asScala
.Например,
import scala.jdk.FutureConverters._
KafkaFuture.completedFuture(42).toCompletableFuture.asScala.foreach(println)
выводит 42
.В вашем случае попробуйте
AdminClient
.create(props)
.listTopics()
.names()
.toCompletableFuture
.asScala