Объекты интерфейса Java в Котлине - PullRequest
0 голосов
/ 18 октября 2018

Предположим, у меня есть интерфейс, подобный приведенному ниже:

interface JSONObjectRequestListener {
    fun onSuccess()
    fun onFailure()
}

Теперь у меня есть метод в моей основной деятельности:

fun onRequestHappen(listener: JSONObjectRequestListener)

Если бы это был Java, я бы прошел этообъект как:

onRequestHappen(new JSONObjectRequestListener() {
    @Override
    public void onResponse() {
        // do anything with response
    }

    @Override
    public void onError() {
        // handle error
    }
});

Как передать объект этого интерфейса в Kotlin?

NB.Пожалуйста, не помечайте это как дубликат этого , поскольку запрос этого вопроса полностью отличается от того, что я хочу

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете определить своего слушателя следующим образом:

val listener = object : JSONObjectRequestListener {

    override fun onResponse() {
        // do anything with response
    }

    override fun onError() {
        // handle error
    }
}

И передать его своему функционалу, как показано ниже:

onRequestHappen(listener)

Чтобы сделать это внутри вызова func, вы можете использовать следующеефрагмент кода:

onRequestHappen(object : JSONObjectRequestListener {

        override fun onResponse() {
            // do anything with response
        }

        override fun onError() {
            // handle error
        }
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...