AsyncTask的doInBackground(Params ... params)

时间:2011-06-14 11:54:37

标签: android syntax parameters android-asynctask

我不熟悉doInBackground(Params... params)

中的参数语法

这种类型的东西叫什么,我该如何利用它?

3 个答案:

答案 0 :(得分:56)

正如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 ...

两者之间的细微差别在于,如果你使用的是varargs,你可以在这里合法地调用makeLemonade()。

答案 1 :(得分:3)

它们被称为Var Args ..就像一个数组..你可以传递多个项目,只需访问params[0]等..

答案 2 :(得分:1)

Params... params代表vararg。它是在J2SE5.0中添加的。 这意味着你可以传递任意数量的参数,或者你可以说参数数组params [0]

由于 迪帕克