gpt4 book ai didi

无法重新分配 Android val

转载 作者:行者123 更新时间:2023-12-04 23:51:55 24 4
gpt4 key购买 nike

我定义了一个名为 notes 的变量,当我尝试从方法中修改它时,android studio 说

val cannot be reassigned



但是,如果我像这样访问变量,我可以修改它: this.notes .
class NoteAdapter(var context : Context) : RecyclerView.Adapter<NoteViewHolder>(){

private var notes = emptyList<Note>()

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NoteViewHolder {
var itemView = LayoutInflater.from(context).inflate(R.layout.note_item, parent, false)
return NoteViewHolder(itemView)
}

override fun getItemCount(): Int {
return notes.size
}

fun setNotes(notes: List<Note>) {
this.notes = notes
notifyDataSetChanged()
}

为什么会这样?

我来自 Javascript 背景,所以请原谅我的无知。

最佳答案

你命名了两个东西 notes :

private var notes = emptyList<Note>()

和:
fun setNotes(notes: List<Note>)

所以,在 setNotes()函数, notes指函数参数。这被视为 val并且不能重新分配。 this.notesnotes在您的 NoteAdapter 上定义的属性类(class)。

一般来说,尽量使用不同的名称,以减少混淆。例如,您可以使用:
fun setNotes(replacementNotes: List<Note>)

关于无法重新分配 Android val,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54290337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com