generics接口中的超出投影types禁止使用具有generics参数的metod
我开始使用Kotlin,并定义如下界面:
interface AAdapter { fun onCreateAViewHolder(parent: ViewGroup): VH fun onBindAViewHolder(v: VH, position: 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) //... } }
我得到一个错误: Out-projected type’AAdapter ‘禁止使用’public abstract fun onBindAViewHolder(v:T,position:Int):Unit
我绑定添加“在”或“出”定义,但我很困惑。
如何让它。
用AAdapter
替换AAdapter<*>
AAdapter
。
class Klasa ( private val adapter: AAdapter ) { // ...
因为您已经声明AAdapter
有一个types参数VH
其types是RecyclerView.ViewHolder
任何子类。 而在Klasa
类中,您有一个具有任何types的types参数的AAdapter
实例。