Java variable number or arguments for a method
Is it possible to declare a method that will allow a variable number of parameters ?
What is the symbolism used in the definition that indicate that the method should allow a variable number of parameters?
Answer: varargs
Solution 1:
That's correct. You can find more about it in the Oracle guide on varargs.
Here's an example:
void foo(String... args) {
for (String arg : args) {
System.out.println(arg);
}
}
which can be called as
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.
Solution 2:
Yes, it's possible:
public void myMethod(int... numbers) { /* your code */ }
Solution 3:
Variable number of arguments
It is possible to pass a variable number of arguments to a method. However, there are some restrictions:
- The variable number of parameters must all be the same type
- They are treated as an array within the method
- They must be the last parameter of the method
To understand these restrictions, consider the method, in the following code snippet, used to return the largest integer in a list of integers:
private static int largest(int... numbers) {
int currentLargest = numbers[0];
for (int number : numbers) {
if (number > currentLargest) {
currentLargest = number;
}
}
return currentLargest;
}
source Oracle Certified Associate Java SE 7 Programmer Study Guide 2012