ArrayList-我无法解析此红线代码

时间:2019-10-15 13:39:25

标签: android kotlin arraylist

在代码如下之前

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 个答案:

答案 0 :(得分:1)

这是因为在第一个(有效的)示例中,it引用了HashMap<String, String>的一个实例,因此调用it["time"]实际上等于调用it.get("time")

但是,在第二个示例中,it表示模型。在Kotlin中,您无法使用“括号”语法访问属性(例如,在JS中),因此显示错误。正确的代码应为locationList.groupBy { it.time }