可能重複這些是什麼三個點:
What is the ellipsis for in this method signature?在參數類型
例如:protected void onProgressUpdate(Context... values)
可能重複這些是什麼三個點:
What is the ellipsis for in this method signature?在參數類型
例如:protected void onProgressUpdate(Context... values)
一個字: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});
其在Varargs
三個點的Java 5的詳細信息介紹了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);