引入

可变参数的特征在Java 5中引入,可以提供参数可变的方法,称为“变参”(varargs)方法,可变参数属于Java的语法糖之一,底层基于数组实现。

定义方法

可变参数的写法如下所示

public int function(int normal, int... change)

 这里的省略号. . .是Java代码的一部分,它表明这个方法可以接受任意数量的对象。

有以下几点需要注意

  • 可变参数只能作为函数的最后一个参数
  • 可变参数前可以添加普通参数
  • 可变参数会被编译器转为一个数组

使用

前面提到,可变参数本质是数组实现,所以说可以用操作数组的方法来操作可变参数,如下所示

public int function(int normal, int... change) {
        for (int i : change) {
            System.out.println(i);
        }
        return normal;
    }

 同时,在调用方法的时候,以下两种形式都是可以的,不过在某些编译器中,会给出冗余数组创建的警告

function(1, 1, 2, 3);
function(1, new int[]{1, 2, 3});