调用Http.get时重载解析歧义
我正尝试将一些用Java编写的Akka HTTP代码转换成Kotlin,并且在Kotlin重载解析模糊性方面存在问题。
ActorSystem system = ActorSystem.create("system"); ValidatorHttpService app = new ValidatorHttpService(system); ActorMaterializer materializer = ActorMaterializer.create(system); Flow<HttpRequest, HttpResponse, NotUsed> routeFlow = app.createRoute().flow(system, materializer); CompletionStage<ServerBinding> binding = Http.get(system) .bindAndHandle(routeFlow, ConnectHttp.toHost("localhost", 8080), materializer);
转换为Kotlin:
val system = ActorSystem.create("system") val app = ValidatorHttpService(system) val materializer = ActorMaterializer.create(system) val routeFlow = app.createRoute().flow(system, materializer) val binding = Http.get(system).bindAndHandle(routeFlow, ConnectHttp.toHost("localhost", 8080), materializer)
编译时,出现以下错误:
Error:(48, 28) Kotlin: Overload resolution ambiguity: public open fun get(p0: ActorSystem!): Extension! defined in akka.http.javadsl.Http public open fun get(p0: ActorSystem!): Http! defined in akka.http.javadsl.Http
任何想法如何解决这个问题?