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

Параметр String... в Java

Мне нужно реализовать API для домашнего задания, и мой инструктор использовал нотацию, которую я не знаком с одним из методов в API (основанный на javadoc).

public void method(String... strs);

Что означает "..."? Позже это похоже на то, что мне нужно будет вызвать этот же метод, используя фактический параметр одной строки, а также фактические параметры нескольких строк...

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

4b9b3361

Ответ 1

Он называется varargs; http://docs.oracle.com/javase/6/docs/technotes/guides/language/varargs.html

Это означает, что вы можете передать произвольное количество аргументов методу (даже ноль).

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

Ответ 3

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

Для вашего метода:

public void method(String... strs); 

Вы можете назвать это как:

method(str)
method(str1, str2)
method(str1,str2,str3)

Никаких побочных эффектов не будет. В других мирах это замена:

 public void method(String[] str);