【发布时间】:2011-07-10 14:28:13
【问题描述】:
例如:protected void onProgressUpdate(Context... values)
【问题讨论】:
标签: java
例如:protected void onProgressUpdate(Context... values)
【问题讨论】:
标签: java
一个字: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 语言功能。
【讨论】:
这意味着你可以输入一个范围内的值:
onProgessUpdate(c1,c2,c3);
【讨论】: