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

AsyncTask doInBackground (Params... params)

Я не знаком с синтаксисом параметра в doInBackground(Params... params)

Что называется этим типом, и как его использовать?

4b9b3361

Ответ 1

Как сказали devA и VVV, это называется "varargs". Фактически следующие две строки кода эквивалентны:

public void makeLemonade(String[] args) {

и

public void makeLemonade(String... args) {

код внутри метода будет таким же, но когда он будет вызван, они будут вызываться по-разному. Первый должен быть вызван следующим образом:

makeLemonade(new String[]{"lemon1", "lemon2", "lemon3"});

в то время как вторая сигнатура метода может иметь 0 (предположительно) бесконечное количество аргументов, но все они должны быть аргументами String. Все следующие вызовы будут работать:

makeLemonade("lemon1");
makeLemonade("lemon4", "lemon7", "lemon11", "lemon12"); 
makeLemonade();
// ... etc ...

Тонкая разница между двумя заключается в том, что вы можете называть makeLemonade() юридически здесь, если вы используете varargs.

Ответ 2

Они называются Var Args.. Как и массив. U может передавать несколько элементов и просто получать доступ, например params[0].. и т.д.

Ответ 3

Params... params представляет собой vararg. Он был добавлен в J2SE5.0. Это означает, что вы можете передать любое количество аргументов или сказать массив параметров params [0]

Спасибо Дипак