public class ComingThru {
public static void main(String[] args) {
}
static void f(A[]... a2){
}}
public static void main(String[] args) {
}
static void f(A[]... a2){
}}
比如 public static void main(String[] args)
可以写作
public static void main(String... args)(A[]... a2)调用的时候就可以传多个A[]了。
比如A[] arg1 = new A[10];
A[] arg2 = new A[12];
f(arg1,arg2);
fun(1,2,3);
display(1,2,true);
} private static void display(Object...objects){
for (Object object : objects) {
System.out.println(object);
}
}
private static void fun(int...arr){
for (int i : arr) {
System.out.println(i);
}
}
}
public static void f(int... a){
for(int b:a){
System.out.println(a);
}
}
public static void main(String[] args) {
int a[] = new int[11];
for(int i=10;i>1;i--){
a[i] = i*i;
}
f(a);
}
}这里输出非常奇怪。大家运行一下,为什么这样。。
java会在编译阶段将VarArgs转化成数组,这里打印的是a不是b