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

时间:2011-03-07 19:29:14

标签: java

  

可能重复:
  What is the ellipsis for in this method signature?

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

6 个答案:

答案 0 :(得分:9)

一个字: varargs.

  

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

答案 1 :(得分:5)

它们被称为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});

答案 2 :(得分:2)

它是{5}中引入的varargsVarargs

的更多信息

答案 3 :(得分:0)

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

答案 4 :(得分:0)

这意味着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语言功能。

答案 5 :(得分:0)

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

onProgessUpdate(c1,c2,c3);