2017-02-18 22 views
0

Мне было интересно, можно ли конвертировать экземпляр одного из экземпляров и экземпляр другого. Если да, то как мне это сделать? Я не упоминал об этом в документах akka-http. Я пытаюсь написать класс, который реализует интерфейс Java, который возвращает базовый маршрут приложения akka-http, но внутренне я хочу реализовать класс в Scala.Можно ли конвертировать между akka.http.javadsl.server.Route и akka.http.scaladsl.server.Route

ответ

1

javadsl.server.Route фактически реализуется адаптером, обертывающим scaladsl.server.Route (конкретный класс называется 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 
+0

Итак, есть простой способ идти наоборот: из 'akka.http.javadsl.server.Route' в' akka.http.scaladsl .server.Route', желательно, не отбрасывая java-маршрут RouteAdapter? –

+0

Я не вижу способ, который не включал бы литье. –