在代码如下之前
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?)
答案 0 :(得分:1)
这是因为在第一个(有效的)示例中,it
引用了HashMap<String, String>
的一个实例,因此调用it["time"]
实际上等于调用it.get("time")
。
但是,在第二个示例中,it
表示模型。在Kotlin中,您无法使用“括号”语法访问属性(例如,在JS中),因此显示错误。正确的代码应为locationList.groupBy { it.time }
。