Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
10 Июл 2023
2 мин
1208

Передача массива в метод с переменными аргументами в Java

Часто разработчики сталкиваются с задачей передать массив в качестве аргументов методу с переменными аргументами в Java. При этом возникает проблема:

Часто разработчики сталкиваются с задачей передать массив в качестве аргументов методу с переменными аргументами в Java. При этом возникает проблема: массив воспринимается как один объект, а не как набор отдельных элементов.

Приведем пример. Предположим, есть следующий метод:

public void printAll(Object... args) {
    for (Object arg : args) {
        System.out.println(arg);
    }
}

И массив объектов, который нужно передать этому методу:

Object[] myArray = new Object[]{"one", "two", "three"};

Если передать этот массив методу printAll(), то он будет воспринят как один объект, а не как три разных элемента.

printAll(myArray);

На экран выведется информация об одном объекте, а не о трех разных.

Решение проблемы

В Java для решения этой проблемы предусмотрена специальная конструкция. Если перед массивом поставить троеточие, то он будет распакован, и каждый его элемент будет передан в метод как отдельный аргумент.

printAll(myArray...);

Теперь метод printAll() получит три разных аргумента, и на экран будут выведены все три элемента массива.

Но что делать, если в метод нужно передать не только массив, но и другие аргументы? В этом случае можно использовать такую конструкцию:

printAll("Extra argument", myArray...);

«Extra argument» будет передан в метод как первый аргумент, а затем будут переданы все элементы массива.

Таким образом, в Java предусмотрена возможность передачи массива в метод с переменными аргументами так, чтобы каждый элемент массива передавался как отдельный аргумент.

Добавить комментарий