我试图将初始化列表{…}传递给构造函数,但它不起作用.
当我在一个方法局部变量(int [])中声明它时,它可以完美地工作.
这是为什么?
public class QuickSort {
int[] a;
public QuickSort(int[] a) {
this.a = a;
}
public static void main(String[] args) {
// ###################
// ### WORKS ##
// ###################
int[] a = {8,12,79,12,50,44,8,0,7,289,1};
QuickSort sort = new QuickSort(a);
// ###################
// ### DOESN'T WORK ##
// ###################
//QuickSort sort = new QuickSort({8,12,79,12,50,44,8,0,7,289,1});
}
}
解决方法:
当声明一个int []并分配{1,2,3}时,编译器知道你要创建一个int [],就像它拼写出来一样.
在后一种情况下,您将数组直接粘贴到方法调用中,您必须使用
QuickSort sort = new QuickSort(new int[] {8,12,79,12,50,44,8,0,7,289,1});
告诉编译器你的数组是什么.