参数类型中的这三个点是什么

可能重复:
此方法签名的省略号是什么?

例如: protected void onProgressUpdate(Context... values)

一个字: varargs

最后一个参数类型之后的三个句点表示最终参数可以作为数组参数序列传递。 Varargs 只能在最终参数位置使用。

它们被称为varargs,并在Java 5中引入。有关更多信息,请阅读http://download.oracle.com/javase/1.5.0/docs/guide/language/varargs.html 。

简而言之,它允许将数组传递给方法而不必创建一个,就好像该方法采用了可变数量的参数一样。 在您的示例中,以下四个调用有效:

 onProgressUpdate(); onProgressUpdate(context1); onProgressUpdate(context1, context2, context3); onProgressUpdate(new Context[] {context1, context2}); 

它是在Java 5中引入的varargs 。更多信息在Varargs

三个点称为省略号。 方法可以被称为Context的任意数量的值。 你也可以调用那个没有值的方法。

这意味着values参数是Context对象的可选数组。 因此,您可以通过以下方式调用“onProgressUpdate”函数:

 onProgressUpdate(); // values is an empty array. onProgressUpdate(new Context[] { new Context() }); // values has one item. onProgressUpdate(context1, context2); // values has two items. 

请参阅Java 1.5中引入的varargs语言function。

这意味着您可以放置​​一系列值:

 onProgessUpdate(c1,c2,c3);