问题
是否可以声明一个允许可变数量参数的方法?
定义中使用的符号是什么,表明该方法应该允许可变数量的参数?
**答案:**varargs
#1 热门回答(217 赞)
那是对的。你可以在the Oracle guide on varargs找到更多相关信息。
这是一个例子:
void foo(String... args) {
for (String arg : args) {
System.out.println(arg);
}
}
可称为
foo("foo"); // Single arg.
foo("foo", "bar"); // Multiple args.
foo("foo", "bar", "lol"); // Don't matter how many!
foo(new String[] { "foo", "bar" }); // Arrays are also accepted.
foo(); // And even no args.
#2 热门回答(12 赞)
是的,这是可能的:
public void myMethod(int...numbers) { ... }
#3 热门回答(12 赞)
Variable number of arguments
可以将可变数量的参数传递给方法。但是,有一些限制:
- 可变数量的参数必须都是相同的类型
- 它们被视为方法中的数组
- 它们必须是方法的最后一个参数
要了解这些限制,请考虑以下代码片段中的方法,该方法用于返回整数列表中的最大整数:
private static int largest(int... numbers) {
int currentLargest = numbers[0];
for (int number : numbers) {
if (number > currentLargest) {
currentLargest = number;
}
}
return currentLargest;
}
源Oracle认证助理Java SE 7程序员学习指南2012