代码之家  ›  专栏  ›  技术社区  ›  Zar E Ahmer

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

  •  2
  • Zar E Ahmer  · 技术社区  · 6 年前

    this code 致科特林

    abstract class BaseModel(){
    }
    

    BaseViewHolder

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

    基极适配器

    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 给出一个错误

    我做错什么了??

    1 回复  |  直到 6 年前
        1
  •  1
  •   Hanzala Pascal    6 年前

    改变你的想法 BaseViewHolder<*> * T

    就这样

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