不能参考"这个"在调用超类型构造函数之前

时间:2017-07-10 09:45:00

标签: java constructor supertype

我最近遇到了一些代码问题:

public class SightsAdapter extends ArrayAdapter<Sights> {

    static int mColorResourceId;

    public SightsAdapter(ArrayList<Integer> sights, int colorResourceId) {
        super(this, 0, sights);
        mColorResourceId=colorResourceId;
    }
}

我已经尝试在Sights java类中使用静态方法,但仍然会在this下划线并显示错误消息

  

无法参考&#34;这个&#34;在调用超类型构造函数之前

PS我已经回顾了这种类型的其他问题,但他们并没有真正帮助我。我是一个完整的新手,所以如果有人能向我解释我做错了什么,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您似乎对作为第一个参数super传递给Context构造函数(属于ArrayAdapter)的内容感到困惑。

例如here您有一个例子,主要部分是:

public class SightsAdapter extends ArrayAdapter<Sights> {

    public SightsAdapter(Context context, ArrayList<Integer> sights, int colorResourceId) {
        super(context, 0, sights);
        ...
    }
}

Context必须来自外部,SightsAdapter必须将其作为参数接收。这就是应用程序中 context 的概念:它是从当前正在运行应用程序/对象的环境中注入的东西。