在 Java 中传递可变参数

Passing variable parameters in Java

我想创建一个方法,有时会传递两个参数,但有时只传递一个参数而不传递 null(空)参数。我知道我可以做方法重载,但我一直在寻找像下面这样的功能,以后不需要迭代:

class MyObject {

    int id;
    int[] zero_Or_MoreArguments;

    Animal(int id, int... zero_Or_MoreArguments) {
        this.id = id;
        this.zero_Or_MoreArguments = zero_Or_MoreArguments;
    }
}

Java有这样的东西吗?我在这里有什么选择吗?提前致谢。

是的,它叫做varargs

稍微修改您的示例以显示其工作原理:

class MyObject {

    int id;
    int[] zero_Or_MoreArguments;

    MyObject(int id, int... zero_Or_MoreArguments) {
        this.id = id;
        this.zero_Or_MoreArguments = zero_Or_MoreArguments;
    }

    public static void main(String[]args) {
        MyObject mo = new MyObject(1, 2, 3, 4);
        System.out.println(Arrays.toString(mo.zero_Or_MoreArguments)); // prints [2, 3, 4]
    }
}

你需要的是可变参数列表。

在Java中可以用作:

static void vaTest(String msg, int ... no) {
  System.out.print("vaTest(String, int ...): " +
  msg +"no. of arguments: "+ no.length +" Contents: ");
  for(int  n : no)
  System.out.print(n + " ");
  System.out.println();
}

完整示例位于:Java Examples - Use varargs with method overloading