我有通用类
public abstract class BaseAdapter<T> extends RecyclerView.Adapter {
private List<T> itemsList = new ArrayList<>();
//other override methods
@Override
public long getItemId(int position) {
return position;
}
}
实现 getItemId() 的正确方法是什么?我觉得return position
就像许多例子中那样是不正确的。
-
创建一个具有返回类型的方法的基接口long
eg.
interface BaseInterface{
long getId();
}
-
Change
abstract class BaseAdapter<T> extends RecyclerView.Adapter
to
abstract class BaseAdapter<T extends BaseInterface> extends RecyclerView.Adapter {
注:签名改为T extends BaseInterface
-
Replace
@Override
public long getItemId(int position) {
return position;
}
with
@Override
public long getItemId(int position) {
return itemsList.get(position).getId();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)