我正在练习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; 原因:实际和正式的参数列表长度不同“
有人可以请详细说明此错误的含义,以及如何更正我的代码?
答案 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