DoInBackground AsyncTask (Params ... params) - PullRequest
22 голосов
/ 14 июня 2011

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

Как называется этот тип вещей и как его использовать?

Ответы [ 3 ]

57 голосов
/ 14 июня 2011

Как сказали 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.

3 голосов
/ 14 июня 2011

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

1 голос
/ 14 июня 2011

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

Спасибо Deepak

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