例如,我正在寻找一种在其声明之外直接为 java 数组赋值的方法
/*this works*/
int a[] = {1,2,3};
/*this doesn't*/
a = {1,2,3};
其动机是可以像这样使用以数组作为参数的方法
public void f(int a[]) {
/*do stuff*/
}
f({1,2,3});
代替
int a[] = {1,2,3};
f(a);
例如,我正在寻找一种在其声明之外直接为 java 数组赋值的方法
/*this works*/
int a[] = {1,2,3};
/*this doesn't*/
a = {1,2,3};
其动机是可以像这样使用以数组作为参数的方法
public void f(int a[]) {
/*do stuff*/
}
f({1,2,3});
代替
int a[] = {1,2,3};
f(a);
尝试:
a = new int[] {1,2,3};
尝试 :
a = new int[]{1,2,3};
一般来说,你可以说
int[] a;
a = new int[]{1,2,3};
public void f(int a[]) { ... }
f(new int[]{1,2,3})
在代码中的任意位置初始化数组。
作为更清洁的替代方案,您可以使用可变参数功能,这仍然适用于传递数组 - 它只是语法糖。
public void f(int... a) {
/*do stuff*/
}
public void test() {
f(1);
f(1,2,3);
f(new int[]{1,2,3});
}
您可以使用静态块来做您正在寻找的事情。请记住,这是在第一次加载类时执行的。
private static int a[];
static {
a = new int[] {1,2,3};
f(new int[]{1,2,3});
}
public static void f(int a[]) {
///
}