RecyclerView.Adapter Android的泛型
我正在尝试为我的应用程序中的所有RecyclerView.Adapter Android的泛型,android,kotlin,android-recyclerview,kotlin-extension,Android,Kotlin,Android Recyclerview,Kotlin Extension,我正在尝试为我的应用程序中的所有RecyclerView.Adapter使用一个通用扩展函数,因此我创建了一个名为notifyAdapter的ext-fun,但它没有按预期工作 fun <T> RecyclerView.Adapter<RecyclerView.ViewHolder>.notifyAdapter() { updateAll() notifyDataSetChanged() } 如何使用泛型为所有RecyclerView.Adapter创建
RecyclerView.Adapter
使用一个通用扩展函数,因此我创建了一个名为notifyAdapter的ext-fun,但它没有按预期工作
fun <T> RecyclerView.Adapter<RecyclerView.ViewHolder>.notifyAdapter() {
updateAll()
notifyDataSetChanged()
}
如何使用泛型为所有RecyclerView.Adapter
创建通用扩展函数
提前感谢。有几种方法可以做到这一点
out
方差标记ViewHolder
参数。这样,您的函数就不是泛型的,因此您将无法访问其中的ViewHolder
的确切类型
fun RecyclerView.Adapter<out RecyclerView.ViewHolder>.notifyAdapter() { ... }
Adapter
类的type参数的上限为ViewHolder
fun RecyclerView.Adapter<*>.notifyAdapter() { ... }
fun RecyclerView.Adapter.notifyAdapter(){…}
fun <T : RecyclerView.ViewHolder> RecyclerView.Adapter<T>.notifyAdapter() { ... }
fun RecyclerView.Adapter<*>.notifyAdapter() { ... }