Страницы

Поиск по вопросам

Показаны сообщения с ярлыком varargs. Показать все сообщения
Показаны сообщения с ярлыком varargs. Показать все сообщения

вторник, 28 января 2020 г.

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

#java #методы #varargs


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

private void onProgressUpdate(String... item);


и

private void onProgressUpdate(String[] item);

    


Ответы

Ответ 1



Главное отличие в сигнатуре методов. В первом случае сигнатура метода определяет один или более параметров типа String, во втором передается только один параметр типа String[]. Определение vararg также допускает использование массива в качестве аргумента. В первом случае может быть использовано onProgressUpdate("item1","item2","item3"); или onProgressUpdate(new String[]{"item1","item2","item3"}); а во втором случае только последний вариант. Более подробно об vararg можно почитать здесь.

Ответ 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);

пятница, 29 марта 2019 г.

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

В чем разница между
private void onProgressUpdate(String... item);
и
private void onProgressUpdate(String[] item);


Ответ

Главное отличие в сигнатуре методов. В первом случае сигнатура метода определяет один или более параметров типа String, во втором передается только один параметр типа String[]. Определение vararg также допускает использование массива в качестве аргумента.
В первом случае может быть использовано
onProgressUpdate("item1","item2","item3");
или
onProgressUpdate(new String[]{"item1","item2","item3"});
а во втором случае только последний вариант.

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