在 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();
}
我想创建一个方法,有时会传递两个参数,但有时只传递一个参数而不传递 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();
}