Кто-нибудь может помочь с рефакторингом этого класса для Kotlin, если у него возникли проблемы с общением дженериков
Модель:
abstract class ViewHolderDataBinder<DM : ViewHolderDataModel,
VH : RecyclerView.ViewHolder>(val viewType: Int) {
abstract fun createViewHolder(parent: ViewGroup): VH
abstract fun bindView(model: DM, holder: VH)
}
Java-код, который требуется преобразовать в Kotlin:
SparseArray<ViewHolderDataBinder> viewHolderDataBinders = new SparseArray<>();
И я хочу реорганизовать его в этот
val viewHolderDataBinders = SparseArray<ViewHolderDataBinder>()
но Kotlin требует добавить параметры типа в ViewHolderDataBinder
.
Есть ли способ не добавлять параметр типа, так как это не было необходимо в Java?
ОБНОВЛЕНИЕ
если я использую private val viewHolderDataBinders = SparseArray<ViewHolderDataBinder<*, *>>()
, то при получении ошибки здесь binder.bindView(item, holder)
говорит, что item
и holder
требуют Nothing
, но Found
.....