在Kotlin中使用泛型时发现类型不匹配

时间:2018-10-19 05:34:41

标签: android generics kotlin

我正在将this code转换为Kotlin

其中

abstract class BaseModel(){
}

BaseViewHolder

abstract class BaseViewHolder<T : BaseModel>(itemView: View) : RecyclerView.ViewHolder(itemView){
    abstract fun bindData(data: T)
}

BaseAdapter

abstract class BaseAdapter<T:BaseModel, U : BaseViewHolder<*>>(var items: List<T>) : RecyclerView.Adapter<U>() {
    override fun onCreateViewHolder(p0: ViewGroup, p1: Int): U {
    }

    override fun getItemCount(): Int {
        return items.size
    }

    override fun onBindViewHolder(holder: U, pos: Int) {
        holder.bindData(items.get(pos))
    }
}

onBindViewHolder中,方法holder.bindData给出错误类型不匹配要求没找到T

我在做什么错??

1 个答案:

答案 0 :(得分:0)

将您的BaseViewHolder<*>*更改为T

就这样

...BaseAdapter<T:BaseModel, U : BaseViewHolder<T>>...