有人可以告诉我是否可以将int数组作为参数传递给构造函数?
我尝试了以下内容:
public static void main (String args[]){
Accumulator[] X = new Accumulator[3];
}
public Accumulator(int[] X) {
A= new int[X.length];
for (int i=0; i<X.length; i++)
A[i] = X[i];
}
答案 0 :(得分:2)
您正在使用main方法初始化一个大小为3的累加器数组。
要将int数组传递给Accumulator的构造函数,您需要执行以下操作:
public static void main (String args[]){
int[] someArray = {1,2,3};
Accumulator accumulator = new Accumulator(someArray);
}
public Accumulator(int[] X) {
A= new int[X.length];
for (int i=0; i<X.length; i++)
A[i] = X[i];
}
答案 1 :(得分:1)
尝试这样的事情:
public static void main (String args[]){
int[] test = new int[3];
test[0] = 1;
test[1] = 2;
test[3] = 3;
Accumulator X = new Accumulator(test);
}
public Accumulator(int[] X) {
A= new int[X.length];
for (int i=0; i<X.length; i++)
A[i] = X[i];
}
答案 2 :(得分:0)
当然,Array只是java中的一个Object,因此您可以将其作为参数传递。虽然你可以简单地使用:
public Accumulator(int[] X){
A = X;
}
或者,如果您需要复制数组,请使用
public Accumulator(int[] X){
A = new int[X.length];
System.arrayCopy(X , 0 , A , 0 , X.length);
}
出于性能原因。
答案 3 :(得分:0)
我看到你得到了许多答案,解释了如何为单个对象做到这一点,但对于数组却没有。所以这就是你如何为数组做到这一点:
public static void main (String args[]){
int array[] = {1, 2, 3};
Accumulator[] X = new Accumulator[3];
for(Accumulator acc : X) {
acc = new Accumulator(array);
}
}
创建数组时,元素初始化为null,因此您可以在循环中创建对象,并且可以在那里使用带有数组参数的构造函数。