2013-04-30 30 views
0

我有一個ArrayList<String>,我需要通過每個String在此ArrayList,因爲這個功能的參數:傳遞ArrayList的泛型參數在Java中

protected Void myFunction(String... params) 

注:我不能修改myFunction

+2

的參數是一個'String'陣列,爲什麼你需要通過個別'字符串? – NINCOMPOOP 2013-04-30 12:28:08

回答

7

toArray方法將其轉換爲一個數組:

myList.toArray(new String[myList.size()]); 
1

轉換數組列表轉換成String數組,然後將它傳遞

instanceName.myFunction(list.toArray(new String[list.size()])); 

注意:你不必改變你的方法的簽名。

檢查:http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#toArray()

+0

您將擁有Object [],而不是String []。還有另一種toArray方法具有更準確的返回類型。 – Agemen 2013-04-30 12:30:54

+0

無參數'toArray()'只返回'Object []'!你需要調用'toArray(new String [0])'(或更好的,提供正確的大小) – misberner 2013-04-30 12:31:55

2

1.To把它作爲單獨的字符串:

List<String> list = new ArrayList<String>(); 
for(String element:list){ 
    myFunction(element); 
} 

2.To傳遞一個字符串數組。

myFunction(list.toArray(new String[list.size()])); 
0

只是通過你的ArrayList參數,然後在ArrayList的迭代與你的方法裏面的foreach:

protected void myFunction(ArrayList<String> myArrayList){ 
    for(String myParam : myArrayList){ 
     //do your stuff 
    } 
}