我扩展抽象类RecyclerView.Adapter其他警告:有同一消失,但既不覆盖出现在只有一种情况
public static abstract class Adapter<VH extends ViewHolder> {
public abstract VH onCreateViewHolder(ViewGroup parent, int viewType);
public abstract void onBindViewHolder(VH holder, int position);
// some more code
}
在另外一个抽象类:
public abstract class Adapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public abstract VH onCreateViewHolder(ViewGroup parent, int viewType);
public abstract void onBindViewHolder(VH viewHolder, int position);
}
但是,当我做到这一点,只有onBindViewHolder
方法显示了一个错误:
'onBindViewHolder(VH, int)' in 'com.leonardo.endlessrecycerviewwithsqlitepagination.adapter.ViewHolder' clashes with 'onBindViewHolder(VH, int)' in 'android.support.v7.widget.RecyclerView.Adapter'; both methods have same erasure, yet neither overrides the other
为什么同样THI ng不会发生到onCreateViewHolder
方法?
另一个问题是,在这样的情景:
public abstract class Adapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<ViewHolder.CustomViewHolder> {
public abstract VH onCreateViewHolder(ViewGroup parent, int viewType);
public abstract void onBindViewHolder(VH holder, int position);
static class CustomViewHolder extends RecyclerView.ViewHolder {
public CustomViewHolder(View itemView) {
super(itemView);
}
}
}
为什么现在这两种方法都显示上述错误?
您的意思是: 公共抽象类的适配器扩展RecyclerView.Adapter { –
如果更改ViewHolder对于适配器,是的,我注意到并改变了它,但是谢谢你让我知道:) – LeonardoSibela
不,我的意思是你将类型参数放入类派生签名,将“VH”传递给扩展部分。 –