public void test(int... integers, String str) { // error
...
}
错误:
方法test的变量参数类型int必须是最后一个参数。
public void test(String str, int... integers) {}
效果很好。这有什么理由吗?
答案 0 :(得分:4)
好吧,考虑一下这个方法签名:
public void test(int... integers, float val, float val2)
现在,当您调用此方法时:
test(2, 3, 4, 5, 6, 7);
编译器如何决定何时停止向int...
类型参数添加参数?请记住,参数是从Java中的left-to-right
计算的。这就是为什么var-args
应该在最后。因此,该编译器可以首先分配固定参数,然后分配其余参数,转到var-args
。