我有一个带有数组参数的方法,例如:
public static void foo(int[] param) {
// Some code
}
而且我可以通过以下方式调用该方法:
foo(new int[3]);
通常,我们使用 new 运算符或双括号初始化器(如 {1, 2, 3})来声明和初始化数组。例如,int[] foo = new int[3];
或者int[] foo = {1, 2, 3};
。
但是,无法将双括号初始化器作为方法的参数使用。{}
仅可用于创建数组对象。
那么,new 运算符和 {}
之间有什么区别呢?如果有,是什么?
foo (new int[] {1, 2, 3})
的作用正常。 - Eranvoid foo(int...params)
,并使用foo(1, 2, 3)
进行调用。 - Walter Laan