Разница между строкой [] и строкой ... а - PullRequest
6 голосов
/ 02 июля 2011

Какая разница, когда мы пишем String [] a в методе main и String ... a?

public static void main(String[]a)

и

public static void main(String...a)

Ответы [ 3 ]

8 голосов
/ 02 июля 2011
public static void main(String[] a)

Этот должен вызываться с одним аргументом типа String [] или null.

public static void main(String...a)

Этот можно вызвать с одним аргументом типа String [], ИЛИ с любым количеством аргументов String, например main ("a", "b", "c"). Тем не менее, компилятор будет жаловаться, если вы передадите null, поскольку он не может определить, имеете ли вы в виду String [] со значением null или массив из 1 пустой строки.

Внутри main(), в любом случае переменная a представляет собой String[]. * * 1010

Так как это main, вы можете не думать о том, как это будет называться ... Обычно это первое. Но я перешел на использование второй формы для всех моих сетей; ему проще передать аргументы для тестирования.

8 голосов
/ 02 июля 2011

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

Второй принимает ноль или более параметров String. Он также принимает массив строк.

3 голосов
/ 02 июля 2011

Второй называется varargs и был представлен в Java 5. Он освобождает вас от явного создания массива, когда вам нужно передать ноль или более параметров в метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...