是否可以在 akka.http.javadsl.server.Route 和 akka.http.scaladsl.server.Route 之间转换

Is it possible to convert between akka.http.javadsl.server.Route and akka.http.scaladsl.server.Route

我想知道是否可以将一个实例转换为另一个实例。如果是这样,那我该怎么做?我在 akka-http 文档中没有发现任何提及。 我正在尝试编写一个 class 来实现一个 Java 接口,该接口 returns 是 akka-http 应用程序的基本路由,但在内部我想在 Scala 中实现 class .

javadsl.server.Route实际上是由一个适配器封装了一个scaladsl.server.Route实现的(具体的class叫做RouteAdapter)。你可以通过

在两者之间移动
val scalaRoute = get { complete("OK") } // akka.http.scaladsl.server.Route

val javaRoute = RouteAdapter(scalaRoute) // extends akka.http.javadsl.server.Route

val backToScalaRoute = RouteAdapter(scalaRoute).delegate // akka.http.scaladsl.server.Route