在当前上下文中不可访问

CipQuestion:

我有以下代码

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
    }
}

BaseAdapter和ModelAdapter位于单独的文件中。问题是尝试定义ModelAdapter时出现编译错误:在当前上下文中无法访问 ModelViewHolder

我不太了解这个错误,也无法弄清楚我在做什么错。有人可以向我解释这个问题或可以澄清这种情况的链接吗?

Fei Liang :

创作死锁

您将ModelAdapter.ModelViewHolder用作的模板参数BaseAdapter,然后让ModelAdapterextends进行使用BaseAdapter,然后编译器ModelViewHolder首先尝试创建,但尚未创建ModelAdapter.ModelViewHolder(类型为Class)的它必须等待ModelAdapter创建,因为ModelViewHolder它在的范围内ModelAdapter

解决问题的方法是将ModelViewHolder类放入新的* .java文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章