编译器显示错误Kotlin:Variable';mAdapter';必须初始化
代码:编译器显示错误Kotlin:Variable';mAdapter';必须初始化,kotlin,Kotlin,代码: 如何删除此警告。例如“?”或“!!”您可以这样重新组织代码 private val mAdapter: BaseAdapter = createAdapter(R.id.adapter) { listPosition: Int -> mAdapter.notifyItemChanged(listPosition) } 或者如果可能,将val更改为lateinit var private val mAdapter: BaseAdapter by lazy {
如何删除此警告。例如“?”或“!!”您可以这样重新组织代码
private val mAdapter: BaseAdapter = createAdapter(R.id.adapter) { listPosition: Int ->
mAdapter.notifyItemChanged(listPosition)
}
或者如果可能,将val
更改为lateinit var
private val mAdapter: BaseAdapter by lazy {
createAdapter(R.id.adapter) { listPosition: Int ->
mAdapter.notifyItemChanged(listPosition)
}
}
您的变量未正确初始化。解决该问题的各种方法:
- 初始化构造函数内的变量或正确的初始化 块(不是您声明的私有函数)
- 在声明变量的同时初始化变量
- 稍后初始化变量,并让Kotlin知道(这是 lateinit关键字)
这三个选项并不相同,根据您的代码,前两个选项可能比第三个选项更合适。问题是“在声明变量的同时初始化变量”。
private lateinit var mAdapter: BaseAdapter
init {
mAdapter = createAdapter(R.id.adapter) { listPosition: Int ->
mAdapter.notifyItemChanged(listPosition)
}
}