Eclipse:构造函数调用必须是第一个语句

时间:2012-08-29 06:13:42

标签: java

为什么我为“this(10)”收到此错误,即使第一个语句是构造函数调用。我正在使用eclipse。

public class MaxIndependentSet {
    private ArrayList<Integer> inputArr = new ArrayList<Integer>();

    public void MaxIndependentSet(int size) {
        inputArr.ensureCapacity(size);
    }

    public void MaxIndependentSet() {
        this(10);
    }
}

2 个答案:

答案 0 :(得分:10)

您在构造函数中添加了错误的返回类型void

构造函数的返回类型是它的类类型,它是隐式声明的,如下所示:

public MaxIndependentSet() {
    // blah
}

答案 1 :(得分:1)

public void MaxIndependentSet() {
        this(10);
    }

在您的代码中添加了void类型,但它是一个构造函数。

构造函数和方法在签名的三个方面有所不同:修饰符,返回类型和名称。与方法类似,构造函数可以具有任何访问修饰符:public,protected,private或none(通常称为包或友好)。与方法不同,构造函数只能使用访问修饰符。因此,构造函数不能是抽象的,最终的,本机的,静态的或同步的。

构造函数没有返回类型,甚至无效。

只需编写代码

public MaxIndependentSet() {
        this(10);
    }