Я не знаком с синтаксисом параметра в doInBackground(Params... params)
Как называется такая штука и как ее использовать?
Я не знаком с синтаксисом параметра в doInBackground(Params... params)
Как называется такая штука и как ее использовать?
Как сказали devA и VVV, это называется "варарги". По сути, следующие две строки кода эквивалентны:
public void makeLemonade(String[] args) {
и
public void makeLemonade(String... args) {
код внутри метода будет таким же, но при его вызове они будут вызываться по-разному. Первую нужно было бы назвать так:
makeLemonade(new String[]{"lemon1", "lemon2", "lemon3"});
в то время как сигнатура второго метода может иметь от 0 до (предполагаемого) бесконечного числа аргументов, но все они должны быть строковыми аргументами. Все следующие вызовы будут работать:
makeLemonade("lemon1");
makeLemonade("lemon4", "lemon7", "lemon11", "lemon12");
makeLemonade();
// ... etc ...
Тонкое различие между ними заключается в том, что здесь вы можете законно вызывать makeLemonade(), если используете varargs.
Они называются Var Args.. Точно так же, как массив.. U может передавать несколько элементов и просто получать доступ, например params[0]
.. и т. д..
Params... params
представляет собой vararg. Он был добавлен в J2SE5.0. Это означает, что вы можете передать любое количество аргументов или указать массив аргументов params[0]
Спасибо, Дипак.