任何人都可以帮助将此类重构为 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)}想要转换为 Kotlin 的 Java 代码: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......
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
您可以使用此*
符号来允许将任何对象添加到数组中。
val viewHolderDataBinders = SparseArray<ViewHolderDataBinder<*, *>>()
添加回答
举报
0/150
提交
取消