Подкласс Kotlin – RecyclerView.ViewHolder – не может получить доступ к дополнительной собственности

Я выполнил подкласс класса RecyclerView.ViewHolder, как показано ниже:

class PersonViewHolder(itemView: View, binding: ViewDataBinding) : RecyclerView.ViewHolder(itemView) { } 

Теперь я пытаюсь получить доступ к объявленному в нем объекту привязки, как это происходит в подклассе RecyclerView.Adapter:

 override fun onBindViewHolder(holder: PersonViewHolder?, position: Int) { val person = persons[position] if (holder != null) { holder.binding.setVariable(BR.person, person) // line with error holder.binding.executePendingBindings() // line with error } } 

Но компилятор жалуется – Unresolved reference: binding

Вот полная реализация:

 class PersonsAdapter(private var persons: Array<Person>) : RecyclerView.Adapter<PersonsAdapter.PersonViewHolder>() { override fun onBindViewHolder(holder: PersonViewHolder?, position: Int) { val person = persons[position] if (holder != null) { holder.binding.setVariable(BR.person, person) holder.binding.executePendingBindings() } } override fun getItemCount(): Int { return persons.size } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): PersonViewHolder { val itemView = LayoutInflater.from(parent!!.context).inflate(R.layout.list_item_person, parent, false) return PersonViewHolder(itemView, DataBindingUtil.bind(itemView)) } class PersonViewHolder(itemView: View, binding: ViewDataBinding) : RecyclerView.ViewHolder(itemView) { } } 

Какие-нибудь идеи, если я что-то пропустил? Пожалуйста, предложите.

binding: ViewDataBinding – вы определяете только параметр конструктора, он никогда не сохраняется как член класса. Отметьте его с помощью var или val чтобы он сохранил параметр и он будет доступен позже.