static void m(int ...x,double ...y){}
我正在尝试使用此方法。但这会编译错误。我想知道原因。
int x[]=new int[2];
double y[]=new double[2];
我制作了两个这样的数组,我想将它们解析为方法 m 。
m(x,y); like this.
答案 0 :(得分:5)
您不能有像void m(int ...x,double ...y){}
这样的双变量。
相反,您可以拥有void m(int[] x, double[] y){}
。
答案 1 :(得分:4)
答案 2 :(得分:2)
您不能有两个varargs,但关键问题是“为什么这不可能?”因为限制不是来自Java本身。例如,考虑以下两种情况:
return set(word_list)
->您不知道someMehod(Shape ...shape, Square ...square)
args在哪里停止或Shape
args在哪里开始。Square
扩展了Square
->由于多态性,Shape
类可以存在于Shape
和...shape
args中,这很令人困惑。 li>