Ссылка на перегруженные Java методы в Kotlin - PullRequest
1 голос
/ 23 апреля 2020

Мне интересно, как я могу ссылаться на перегруженный метод из класса Java в Kotlin.

Например, в интерфейсе WebClient есть три метода get:

  HttpRequest<Buffer> get(int port, String host, String requestURI);
  HttpRequest<Buffer> get(String host, String requestURI);
  ...

В kotlin Я хочу сослаться на один с тремя параметрами:

val methodReference : WebClient.(port : Int, host: String?, requestUrl: String?) -> HttpRequest<Buffer> = WebClient::get

Но я получаю следующую ошибку:

None of the following functions can be called with the arguments supplied: 
public abstract operator fun get(p0: Int, p1: String!, p2: String!): HttpRequest<Buffer!>! defined in io.vertx.ext.web.client.WebClient
public abstract operator fun get(p0: String!): HttpRequest<Buffer!>! defined in io.vertx.ext.web.client.WebClient
public abstract operator fun get(p0: String!, p1: String!): HttpRequest<Buffer!>! defined in io.vertx.ext.web.client.WebClient

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Попробуйте получить следующую ссылку:

val methodReference: WebClient.(Int, String, String) -> HttpRequest<Buffer>? = WebClient::get
0 голосов
/ 23 апреля 2020

Может быть, вы можете попробовать это со значениями по умолчанию.

val methodReference : WebClient.(port:Int=8080, host:String='host', requestUrl:String='url') -> HttpRequest<Buffer> = WebClient::get
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...