带有array和int的java新构造函数

时间:2017-04-12 16:31:02

标签: java arrays constructor compiler-errors

我正在练习Java,我正在尝试构建一个构造函数,它接受 int []数组 int

public static App(int[] name, int n) {}

现在在我的main()中,我正在尝试使用构造函数构建一个 new 对象,并且我收到一条错误消息。

public static void main(String[] args) {
    int n;
    int[] name = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    App app1 = new App(name, n);

}

我要回的错误信息是:

“类App中的构造函数App不能应用于给定类型; 要求:没有参数; found:int [],int; 原因:实际和正式的参数列表长度不同“

有人可以请详细说明此错误的含义,以及如何更正我的代码?

3 个答案:

答案 0 :(得分:1)

public static App(int[] name, int n) {}

Thae成为一个带有无效签名的静态方法,而不是构造函数。

根据你的描述,它应该是

public App(int[] name, int n) {

}

答案 1 :(得分:1)

构造函数没有static修饰符,静态方法需要返回类型。您发布的代码无效。

public static App(int[] name, int n) {}

应该是

public App(int[] name, int n) {}

实际上,你的类根本没有构造函数 - 所以你得到了默认的(no-args)构造函数。

答案 2 :(得分:1)

您的代码存在两个问题,您需要解决这两个问题才能进行编译。

(1)构造函数不能包含 static 关键字,因此请将其删除

(2)变量n未初始化,因此请在首次使用之前对其进行初始化,如下所示:

int n=1; //or any value you wanted