Аргументы переменной длины были введены в Java 5 и с разу же получили популярность среди программистов.
Сразу к делу. Чтобы метод мог принимать переменное число аргументов, в конце объявления обычных параметров необходимо ввести параметр с тремя точками (…). Этот параметр должен быть объявлен последним в сигнатуре метода.
Давайте рассмотрим это на примере:
1 2 3 |
public static int sum(int i, int...vars ){ //что-то делаем с параметром переменной длины } |
Основная информация об аргументах переменной длины
- В методе может быть только один аргумент переменной длины.
- Только последний аргумент метода может быть переменной длины.
- Согласно Java документации, не стоит перегружать метод с аргументами переменной длины.
Как работают аргументы переменной длины?
Когда мы вызываем метод с аргументом переменной длины, то компилятор Java проходит эти аргументы слева направо и, как только он доходит до последнего параметра, создается массив из оставшихся аргументов и передается в метод. На самом деле, аргумент переменной длины ведет себя точно также, как и массив указанного типа.
1 2 3 4 5 6 7 8 |
//метод с аргументами переменной длины public static int sum(int i, int...arg ){ int sum = i; for(int x : arg){ sum += x; } return sum; } |
1 2 3 4 5 6 7 8 |
// метод с такой же реализацией подсчета суммы элементов массива, который передается как параметр public static int sumArray(int i, int[] arg ){ int sum = i; for(int x : arg){ sum += x; } return sum; } |
Если посмотреть на реализацию методов, то разницу увидим лишь в названии.
Следите за обновлениями на Javadevblog.com