Вывод типа не удался. значение параметра типа t должно быть упомянуто во входных типах - PullRequest
0 голосов
/ 18 октября 2019

Я новичок в kotlin и пытаюсь отфильтровать элементы, присутствующие в одном списке, однако для этой цели я использую цикл и итератор. Я получаю упомянутое исключение в условии if in здесь. Может кто-нибудь направить меня, где я не прав. Я вставляю свою функцию здесь.

fun getGateWays(
        gateways: ArrayList<JsonObject>?,
        callback: ResponseCallback<ArrayList<JsonObject>, String>
    ) {


        getDistinctGateways(object : ResponseCallback<List<String>?, String>() {

            override fun onFailure(failure: String) {
            }

            override fun onSuccess(response: List<String>?) {

                for(e in gateways!!.iterator()){
                    if(e.get("value") in response){
                        gateways.remove(e)
                    }
                }
                callback.onSuccess(gateways!!)
            }

        })

    }

Ответы [ 2 ]

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

Вы должны получить строковое значение каждого шлюза в списке. Вы можете сделать это с помощью asString метода JsonObject:

if (e.get("value").asString in response!!) {
    gateways.remove(e)
}
0 голосов
/ 18 октября 2019

Это потому что

    gateways.iterator() will give Iterator<JsonObject>
    e is of JsonObject type and response is the type List<String>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...