2012-08-29 52 views
1

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

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

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

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

回答

10

您已经添加了一个不正确的返回类型void到您的构造函数。

构造函数的返回值类型是它的类类型,它是隐式声明的,就像这样:

public MaxIndependentSet() { 
    // blah 
} 
+0

哎呀我的坏。我想知道我的大脑是如何工作的,每天处理java代码,并且仍然盯着这一段时间,但却没有注意到这样一个愚蠢的事情。谢谢。 –

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

在你的代码中添加void类型,但它是一个构造函数。修饰符,返回类型和名称:

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

构造函数没有返回类型,即使是无效的。

只写代码

public MaxIndependentSet() { 
     this(10); 
    } 
+1

构造函数内部有一个返回类型 - 它们的声明类。他们在内部也有一个方法名,'',而不是人们所期望的类名。 – Vulcan

+0

构造函数是实例化类,而不是其他任何东西,它没有返回类型。 –

相关问题