每当我将两个1-d数组作为参数传递给2-d数组时它工作正常,但是当我尝试将三个1-d数组传递给3-d数组参数方法时,它会给出错误但是当我将三个1-d数组传递给2-d数组时,同样工作正常。
这种行为的原因是什么?
两个1维阵列到2维方法: -
int[] c=new int[] {4,50};
m1(new int[]{10,20},c);
public static void m1(int[]... a)]
三维一维阵列到三维方法: - ,错误 - The method m1(int[][]...) in the type Asd is not applicable for the arguments (int[], int[], int[])
int[] b=new int[] {3,50};
int[] c=new int[] {4,50};
m1(new int[]{10,20},c,new int[] {4,50});
public static void m1(int[][]... a)
三个一维阵列到二维阵列: -
int[] c=new int[] {4,50};
m1(new int[]{10,20},c,new int[] {4,50});
}
public static void m1(int[]... a)
答案 0 :(得分:3)
省略号(...)只是一个数组。
int[]...a <=> int[][] a
int[][]...a <=> int[][][] a
在第二个例子中,m1方法等待3d数组或2d数组的列表,但是你用1d数组列表调用它
好的电话是:m1(new int[][], new int[][] , ...)
并且在m1方法中,a arg的类型为int [] [] []