Методи зі змінним числом аргументів - VarArgs
Починаючи з версії 5.0, в Java можна задавати методи зі змінним числом аргументів або "varargs" (не використовуючи для цієї мети масив або іншу колекцію - стандартний прийом без спеціального механізму мови). Робиться це так - після типу останнього аргументу можна задати три крапки, що означає, що цьому аргументу може відповідати довільне число фактичних аргументів:
public void m (T1 a1, T2 a2, String ... s)
Інтерпретація запису така: при виклику методу після двох фактичних аргументів можуть йти нуль, один, два і більше аргументу типу String. Метод може мати не більше одного такого varargs-аргументу, і він повинен йти останнім в списку формальних аргументів.
Ефект такий же, як якщо б останній аргумент був масивом (тут масив String). Метод міг би тоді використовувати властивості масиву s.length, щоб знайти, скільки значень було фактично передано, і s [i] для доступу до них.
Приклад 1.
public class VarArgsExample { int sumArrays(int[]... intArrays) { int sum, i, j; sum=0; for(i=0; i<intArrays.length; i++) { for(j=0; j<intArrays[i].length; j++) { sum += intArrays[i][j]; } } return(sum); } public static void main(String args[]) { VarArgsExample va = new VarArgsExample(); int sum=0; sum = va.sumArrays(new int[]{1,2,3}, new int[]{4,5,6}, new int[]{100,200}); System.out.println("The sum of the numbers is: " + sum); } }
Приклад 2.
Output:display method invoked display method invoked
Приклад 3.
Output:display method invoked display method invoked hello display method invoked my name is varargs
Правила varArgs
Правила полягають в наступному:- Там може бути тільки одна змінна аргумент в методі.
- Змінна аргумент (змінні аргументи) повина бути останнім аргументом.
Приклади списків параметрів, які не компіллюються:
void method(String... a, int... b){}//Compile time error
void method(int... a, String b){}//Compile time error
Приклад varargs з останнім аргументом в методі:
Приклад 4.
Output:number is 500 hello number is 1000 my name is varargs