В чем отличие троеточия от квадратных скобок?

133
14 ноября 2018, 03:50

В чем разница между

private void onProgressUpdate(String... item);

и

private void onProgressUpdate(String[] item);
Answer 1

Главное отличие в сигнатуре методов. В первом случае сигнатура метода определяет один или более параметров типа String, во втором передается только один параметр типа String[]. Определение vararg также допускает использование массива в качестве аргумента.

В первом случае может быть использовано

onProgressUpdate("item1","item2","item3");

или

onProgressUpdate(new String[]{"item1","item2","item3"});

а во втором случае только последний вариант.

Более подробно об vararg можно почитать здесь.

Answer 2

Первое, это varargs, что обозначает передачу неограниченного количества элементов. Пример: link

void func(int... numbers);
func(1,2,3,4,5,6,7,8);

Второй, это просто передача массива. Пример:

void func(int[] arr);
int[] arr = new int[10];
func(arr);
READ ALSO
Дополнительные (бесполезные) ROLLBACK'и при использовании BasicDataSource из commons-dbcp

Дополнительные (бесполезные) ROLLBACK'и при использовании BasicDataSource из commons-dbcp

Если экземпляр BasicDataSource из Apache commons-dbcp (версии 14, т

158
vue.js Поиск по элементам

vue.js Поиск по элементам

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

145
Парсинг первого элемента списка в dom

Парсинг первого элемента списка в dom

Есть разметка html на сайте:

178