2013-07-31 30 views
0

我目前正試圖讓AsyncTasks在Android中工作,並且在許多不同的教程中找到了我以前從未見過的東西。參數類型後面的`...`服務有什麼意義?

本教程中的某些方法傳遞的參數如下所示:String... arg0Integer... values

Here是一個教程,其中一些代碼與我所描述的相似。

這是什麼意思?爲什麼...在那裏?

回答

2

它被稱爲可變參數。它適用於任何類型,只要它是簽名中的參數最後一個

基本上,任何數量的參數都放入數組中。這並不意味着它相當於一個數組。

,看起來像的方法:

void foo(int bar, Socket baz...) 

將具有插座的陣列(在這個例子中)稱爲巴茲。

所以,如果我們調用foo(32, sSock.accept(), new Socket()),我們將找到一個包含兩個Socket對象的數組。

調用它爲foo(32, mySocketArray)不是工作。但是,如果簽名是數組的可變參數,則可以傳遞一個或多個數組並獲得一個二維數組。例如,void bar(int bar, PrintStream[] baz...)可以採用多個PrintStream陣列並將它們粘貼到一個單獨的PrintStream[][]中。

相關問題