Я строю базовую активность, где у меня есть метод инициализации RecyclerView
.Я хочу, чтобы этот метод имел параметр, который является объектом / классом, который расширяет PagedListAdapter<object, object extends RecyclerView.ViewHolder
.
Допустим, у меня есть класс myAdapter
, который расширяет PagedListAdapter<myDataObject, myAdapter.ViewHolder>
, и я хочу присоединить 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>
?