Струва ми се, че не е много известно, но Java има способността да работи с променлив брой аргументи подадени на някой метод. Това се постига с използването на оператора "..." в мястото за аргументите на декларацията на метода.
Преди JDK 5.0, ако искаме да подадем променлив брой аргументи на някой метод, трябва да подадем например масив от обекти или списък с обекти.
JDK 5.0 добавя свойството varargs, което е доста по-гъвкаво. vararg трябва да бъде последният аргумент в списъка с аргументи.
Нека илюстрираме използването на varargs с един обикновен HelloWorld пример:
Как работи?
public class Varargs {
public static void main(String args[]) {
myMethod("Hello");
System.out.println();
myMethod("Hello", "again", "world!");
}
public static void myMethod(Object ... args) {
System.out.println("You have passed in " + args.length + " arguments ");
for (Object o : args) {
System.out.println(o);
}
}
}
Няма от какво да се притесняваме, дефакто компилатора генерира съсщия код, какъвто би се получил при използването на обикновения масив Object[]{}.
Къде се използва?
Естествено, varargs се използва в стандартната Java библиотека:
- Collections.addAll позволява да се добавя масив в колекция или произволно число елементи, зададени поотделно.
- PrintStream.printf позволява да се извеждат форматирани резултати, както в С++.
Предполагам, че се използва и на други места:)
За какво ни е цялата тази гимнастика?
Така може да се спести малко време за писане на Object[]{} и да се подобри читаемостта на кода.
Няма коментари:
Публикуване на коментар