Java: как я могу создать функцию, которая поддерживает любое количество параметров?
Можно ли создать функцию в java, которая поддерживает любое количество параметров, а затем, чтобы иметь возможность выполнять итерацию каждого из параметров, предоставляемых функции?
спасибо
Kfir
Ответ 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)
Фактически, компилятор преобразует первую форму ко второй - в байтовом коде нет разницы. Все аргументы должны быть одного типа, поэтому, если вы хотите использовать аргументы с разными типами, вам нужно использовать тип объекта и выполнить необходимое кастинг.