我想创建一个方法,有时会传递两个参数,但有时只传递一个而不传递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中有这样的东西吗?我有什么选择吗?提前谢谢。
答案 0 :(得分:4)
是的,它被称为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]
}
}
答案 1 :(得分:1)
您需要的是变量参数列表。
在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();
}