public void add(int a,int ... b){

lem*_*dit 1 java

有人能告诉我一个实际使用...数组方法的演化吗?它只是一种声明可选参数而不是传递空值的方法吗?

public void add(int a, int... b) {
 // do something
}

add(1);
add(1,2,3); 
Run Code Online (Sandbox Code Playgroud)

mip*_*adi 11

String.format是一个很好的实际例子.该方法不知道格式字符串中将出现多少格式化程序,因此它接受可变数量的参数,并且应该将格式化程序(格式字符串)与传递给方法的对象进行一对一映射.

它不是一种声明选项参数而不是null的方式,因为它是声明一个可以处理多个参数的方法.基于我的例子,你可以编写一个sum方法,它接受可变数量的参数并将它们汇总在一起:

public int sum(int... ns)
{
    int sum = 0;
    for (int n : ns) {
        sum += n;
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

这样,根据您当时的需要,您可以将2,3,4或甚至100个数字传递给总和.

  • 甚至是零,这比你想象的更有用,如果你以编程方式调用它并且不需要特殊情况下没有输入的情况. (2认同)