任何人都可以幫助將此類重構為 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
提交
取消