Параметр String... в Java
Мне нужно реализовать API для домашнего задания, и мой инструктор использовал нотацию, которую я не знаком с одним из методов в API (основанный на javadoc).
public void method(String... strs);
Что означает "..."? Позже это похоже на то, что мне нужно будет вызвать этот же метод, используя фактический параметр одной строки, а также фактические параметры нескольких строк...
Java не имеет необязательных аргументов (насколько мне известно), поэтому я немного запутался здесь...
Ответы
Ответ 1
Он называется varargs; http://docs.oracle.com/javase/6/docs/technotes/guides/language/varargs.html
Это означает, что вы можете передать произвольное количество аргументов методу (даже ноль).
В методе аргументы будут автоматически помещены в массив указанного типа, который вы используете для доступа к отдельным аргументам.
Ответ 2
Он называется ellipsis, и это означает, что метод может принимать в качестве аргумента multple String
.
Смотрите: Учебник Java по передаче аргументов на сайте Oracle.
Ответ 3
Да, это означает, что вы можете взять произвольное число строк в качестве аргумента для этого метода.
Для вашего метода:
public void method(String... strs);
Вы можете назвать это как:
method(str)
method(str1, str2)
method(str1,str2,str3)
Никаких побочных эффектов не будет. В других мирах это замена:
public void method(String[] str);
Ответ 4
См. необязательные параметры java: на Java 5 Java поддерживает переменные числа аргументов.