Подтвердить что ты не робот

Java: как я могу создать функцию, которая поддерживает любое количество параметров?

Можно ли создать функцию в java, которая поддерживает любое количество параметров, а затем, чтобы иметь возможность выполнять итерацию каждого из параметров, предоставляемых функции?

спасибо

Kfir

4b9b3361

Ответ 1

Java имеет varargs начиная с Java 1.5 (выпущена в сентябре 2004 года).

Простой пример выглядит так...

public void func(String ... strings) {
    for (String s : strings)
         System.out.println(s);
}

Обратите внимание, что если вы хотите требовать, чтобы какое-то минимальное количество аргументов передавалось в функцию, при этом допуская переменные аргументы, вы должны сделать что-то вроде этого. Например, если у вас была функция, которой требовалась хотя бы одна строка, а затем список аргументов переменной длины:

public void func2(String s1, String ... strings) {

}

Ответ 2

Как указывали другие, вы можете использовать Varargs:

void myMethod(Object... args) 

Это фактически эквивалентно:

void myMethod(Object[] args) 

Фактически, компилятор преобразует первую форму ко второй - в байтовом коде нет разницы. Все аргументы должны быть одного типа, поэтому, если вы хотите использовать аргументы с разными типами, вам нужно использовать тип объекта и выполнить необходимое кастинг.

Ответ 3

Да, используя varargs.