【发布时间】:2019-06-06 20:49:51
【问题描述】:
我正在构建基础活动,我有一个方法来初始化RecyclerView。
我希望这个方法有一个参数,它是一个扩展PagedListAdapter<object, object extends RecyclerView.ViewHolder的对象/类。
假设我有一个扩展 PagedListAdapter<myDataObject, myAdapter.ViewHolder> 的类 myAdapter,我想使用我的方法将 myAdapter 作为适配器附加到 RecyclerView:
来自活动:
fun foo() = initRecyclerView(myAdapter())
然后在我的基地:
protected fun initRecyclerView(mAdapter: Class<out PagedListAdapter<Any, out RecyclerView.ViewHolder>>) {
if (mRecyclerView?.layoutManager == null)
mRecyclerView?.layoutManager = component.linearLayoutManager
if (mRecyclerView?.adapter == null)
mRecyclerView?.adapter = mAdapter
}
但我收到了Type mismatch:
必填:(RecyclerView.Adapter<RecyclerView.ViewHolder>?..RecyclerView.Adapter<*>?)
找到:Class<out PagedListAdapter<Any, out RecyclerView.ViewHolder>>
如何修复它以使此方法“通用”,以接受任何扩展 PagedListAdapter<object, any extends RecyclerView.ViewHolder> 的类型?
【问题讨论】:
-
看看this
标签: android kotlin android-recyclerview