在Java中,不定参数是指方法的参数数量可以变化的情况。其原理是引入的参数会以数组的形式被存储。
一、基本语法 {#title-1}
通过 "dataType... variableName" 的语法来声明不定参数, 这种参数在参数列表的最后一个位置上。
public void method(int... numbers) {
// Your code here
}
数字代表着not参数,而不定参数会被自动转换为数组,可以使用数组的所有功能对其进行操作。例如:
public void method(int... numbers) {
for (int number : numbers) {
System.out.println(number);
}
}
二、混合参数 {#title-2}
虽然不定参数必须在参数列表的最后位置,但也可以与其他参数混合使用。
public void mixMethod(String message, int... numbers) {
System.out.println(message);
for (int number : numbers) {
System.out.println(number);
}
}
在实际调用混合参数的方法时,首先传入非不定参数,然后传入不定参数。
mixMethod("Here are some numbers:", 1, 2, 3, 4, 5);
三、不定参数与数组 {#title-3}
但也有一种情况,有时会将一个数组传入一个接收不定个参数的方法。
int[] numbers = new int[]{1, 2, 3, 4, 5};
mixMethod("Here are some numbers:", numbers);
如果直接向前面的例子中的method方法传入一个数组,会出现编译失败的情况,因为Java会尝试寻找一个接受数组的具体方法(如果存在),而不是将数组当作不定参数。在这种情况下,需要有一个合适的方法覆盖如果需要直接传入数组。