Страницы

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

вторник, 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);

Комментариев нет:

Отправить комментарий