我正在寻找一种方法,在声明之外直接为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);
答案 0 :(得分:7)
尝试:
a = new int[] {1,2,3};
答案 1 :(得分:5)
尝试:
a = new int[]{1,2,3};
答案 2 :(得分:3)
一般来说,你可以说
int[] a;
a = new int[]{1,2,3};
public void f(int a[]) { ... }
f(new int[]{1,2,3})
在代码中的任意位置初始化数组。
答案 3 :(得分:3)
作为一个更清洁的替代品,你可以使用变量参数功能,这仍然适用于传入一个数组 - 它只是语法糖。
public void f(int... a) {
/*do stuff*/
}
public void test() {
f(1);
f(1,2,3);
f(new int[]{1,2,3});
}
答案 4 :(得分:0)
您可以使用静态块来执行您要查找的内容。请记住,这是在第一次加载类时执行的。
private static int a[];
static {
a = new int[] {1,2,3};
f(new int[]{1,2,3});
}
public static void f(int a[]) {
///
}