Cip*_*ion 23 java generics android scope android-context
我有以下代码
public abstract class BaseAdapter<T, V extends BaseAdapter.ViewHolder> extends ArrayAdapter<T> {
public BaseAdapter(Context context, int resource, Collection<T> collection) {
// typical constructor logic
}
// some other custom defined methods
public static class ViewHolder {
// custom defined logic
}
}
public class ModelAdapter extends BaseAdapter<Model, ModelAdapter.ModelViewHolder> {
public ModelAdapter(Context context, int resource, Collection<Model> collection) {
super(context, resource, collection);
// typical constructor logic
}
public static class ModelViewHolder extends ViewHolder {
// custom defined logic
}
}
Run Code Online (Sandbox Code Playgroud)
BaseAdapter和ModelAdapter位于单独的文件中.问题是我在尝试定义ModelAdapter时遇到编译错误:在当前上下文中无法访问 ModelViewHolder
我真的不明白这个错误,也无法弄清楚我做错了什么.有人可以向我解释这个问题或可能澄清这种情况的链接吗?
Fei*_*ang 41
创造死锁
你ModelAdapter.ModelViewHolder
用作模板参数BaseAdapter
,然后让我们ModelAdapter
扩展BaseAdapter
,然后编译器ModelViewHolder
首先尝试创建,但是ModelAdapter.ModelViewHolder
类型(类型是Class)尚未创建.它必须等待ModelAdapter
创建,因为ModelViewHolder
它在范围内ModelAdapter
.
解决它的方法是将ModelViewHolder
类放入一个新的*.java文件中.
归档时间: |
|
查看次数: |
4187 次 |
最近记录: |