Generics 泛型接口中的Out投影类型禁止使用带有泛型参数的metod
我开始使用Kotlin,并定义了如下界面:Generics 泛型接口中的Out投影类型禁止使用带有泛型参数的metod,generics,kotlin,Generics,Kotlin,我开始使用Kotlin,并定义了如下界面: interface AAdapter<VH : RecyclerView.ViewHolder> { fun onCreateAViewHolder(parent: ViewGroup): VH fun onBindAViewHolder(v: VH, position: Int) } 接口适配器{ 乐趣onCreateAViewHolder(父:视图组):VH 宾达维耶霍尔德(v:VH,
interface AAdapter<VH : RecyclerView.ViewHolder> {
fun onCreateAViewHolder(parent: ViewGroup): VH
fun onBindAViewHolder(v: VH, position: Int)
}
接口适配器{
乐趣onCreateAViewHolder(父:视图组):VH
宾达维耶霍尔德(v:VH,位置:Int)
}
当我尝试在代码中使用它时:
class Klasa (
private val adapter: AAdapter<*>
) {
fun doSth(){
//...
val vh = this.adapter.onCreateAViewHolder(parent)
//on below line I get error
adapter.onBindAViewHolder(v, position)
//...
}
}
Klasa类(
专用val适配器:A适配器
) {
fundosth(){
//...
val vh=此.adapter.onCreateAViewHolder(父级)
//在下面的一行我得到了错误
转接器。onBindAViewHolder(v,位置)
//...
}
}
我得到一个错误,Out投影类型'AAdapter'禁止使用'public abstract fun onBindAViewHolder(v:T,position:Int):Unit
我想在定义中加上“in”或“out”,但我感到困惑
如何允许。用AAdapter
替换AAdapter
Klasa类(
专用val适配器:A适配器
) {
// ...
因为您声明了AAdapter
有一个类型参数VH
,其类型是RecyclerView.ViewHolder
的任何子类。并且在类Klasa
中有一个AAdapter
的实例,该实例具有任何类型的类型参数
class Klasa (
private val adapter: AAdapter<RecyclerView.ViewHolder>
) {
// ...