ArrayList - я не могу разрешить этот код красной строки - PullRequest
0 голосов
/ 15 октября 2019

перед кодом следующим образом

class MainAdapter(val locationList: ArrayList<HashMap<String,String>>): RecyclerView.Adapter<MainAdapter.ViewHolder>() {

    val byDates = locationList.groupBy { it["time"] }  //this fine 

 }

после этого я перехожу на использование модели

class MainAdapter(val locationList: ArrayList<Model>): RecyclerView.Adapter<MainAdapter.ViewHolder>() {

   val byDates = locationList.groupBy { it["time"] }  //this red line i cant resolve

}

и этой моей модели

data class Model(val name : String?,
                        val address : String?,
                        val time : String?)

1 Ответ

1 голос
/ 15 октября 2019

Это потому, что в первом (рабочем) примере it относится к экземпляру HashMap<String, String>, поэтому вызов it["time"] фактически равен вызову it.get("time").

Во втором примере, однако,it относится к модели. В Kotlin вы не можете получить доступ к свойствам с помощью синтаксиса «скобок» (как, например, в JS), поэтому он показывает ошибку. Правильный код будет locationList.groupBy { it.time }.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...