在Java中,不定参数是指方法的参数数量可以变化的情况。其原理是引入的参数会以数组的形式被存储。

一、基本语法

通过 "dataType... variableName" 的语法来声明不定参数, 这种参数在参数列表的最后一个位置上。

public void method(int... numbers) {         // Your code here     }

数字代表着not参数,而不定参数会被自动转换为数组,可以使用数组的所有功能对其进行操作。例如:

public void method(int... numbers) {         for (int number : numbers) {             System.out.println(number);         }     }

二、混合参数

虽然不定参数必须在参数列表的最后位置,但也可以与其他参数混合使用。

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);

三、不定参数与数组

但也有一种情况,有时会将一个数组传入一个接收不定个参数的方法。

int[] numbers = new int[]{1, 2, 3, 4, 5};     mixMethod("Here are some numbers:", numbers);

如果直接向前面的例子中的method方法传入一个数组,会出现编译失败的情况,因为Java会尝试寻找一个接受数组的具体方法(如果存在),而不是将数组当作不定参数。在这种情况下,需要有一个合适的方法覆盖如果需要直接传入数组。