Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AsyncTask's doInBackground(Params... params)

Tags:

I'm unfamiliar with the parameter syntax in doInBackground(Params... params)

What is this type of thing called, and how do I utilize it?

like image 275
dfetter88 Avatar asked Jun 14 '11 11:06

dfetter88


2 Answers

As devA and VVV have said, that is called "varargs". Effectively, the following two lines of code are equivalent:

public void makeLemonade(String[] args) { 

and

public void makeLemonade(String... args) { 

the code inside the method would be the same, but when it was called, they would be called differently. The first would need to be called like this:

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

while the second one's method signature could have 0 to (an assumed)infinite number of arguments, but they would all need to be String arguments. All of the following calls would work:

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

A subtle difference between the two is that you can call makeLemonade() legally here if you're using varargs.

like image 194
Travis Avatar answered Sep 21 '22 05:09

Travis


They are called Var Args.. Just like an array.. U can pass multiple items and just access like params[0].. etc..

like image 42
ngesh Avatar answered Sep 20 '22 05:09

ngesh