Java 数组作为对象构造函数中的参数
我想创建一个可以传递数组的构造函数(这不是我以前做过的事情/甚至不确定是否可能),所以我写了以下内容:Java 数组作为对象构造函数中的参数,java,arrays,object,compiler-errors,Java,Arrays,Object,Compiler Errors,我想创建一个可以传递数组的构造函数(这不是我以前做过的事情/甚至不确定是否可能),所以我写了以下内容: class Job { String name; int [] salary = new int[2]; // to represent a salary range static int jobCount=0; Job(String name,int[] salary){ this.name=name; this.salar
class Job {
String name;
int [] salary = new int[2]; // to represent a salary range
static int jobCount=0;
Job(String name,int[] salary){
this.name=name;
this.salary=salary;
jobCount++;
}
}
但当我尝试这样初始化它时:
Job alpha = new Job("First",{20000,35000});
我得到一个“非法的类型开头”和标识符预期的错误。我做错了什么 需要使用
newint[]{}
内联声明数组:
Job alpha = new Job("First",new int[] {20000,35000});
您需要使用
newint[]{}
内联声明数组:
Job alpha = new Job("First",new int[] {20000,35000});
我稍微重构了您的代码:
class Job {
String name = null;
int[] salary = null;
static int jobCount = 0;
Job(String name, int... salary){
this.name = name;
this.salary = salary;
jobCount++;
}
}
public class Test {
public static void main(String[] args) {
new Job("abc", 1, 2, 3);
}
}
- 创建新实例
- 字段已初始化
- 执行构造函数的代码
我稍微重构了您的代码:
class Job {
String name = null;
int[] salary = null;
static int jobCount = 0;
Job(String name, int... salary){
this.name = name;
this.salary = salary;
jobCount++;
}
}
public class Test {
public static void main(String[] args) {
new Job("abc", 1, 2, 3);
}
}
- 创建新实例
- 字段已初始化
- 执行构造函数的代码