2013-04-30 2 views
0

У меня есть ArrayList<String> и мне нужно пройти каждую строку в этом ArrayList, в качестве параметра этой функции:Передача ArrayList в качестве параметра дженериков в Java

protected Void myFunction(String... params) 

Примечание: Я не могу изменить myFunction

+2

Параметр является 'String' массив, почему вам нужно пройти как индивидуальные' Строка'? – NINCOMPOOP

ответ

7

преобразование его в массив с toArray методом:

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

Преобразовать ArrayList в массив String, а затем передать его

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

ПРИМЕЧАНИЕ: Вы не должны измените подпись своего метода.

проверить это: http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#toArray()

+0

У вас будет объект [], а не String []. Есть еще один метод toArray, который имеет более точный тип возврата. – Agemen

+0

Параметр «toArray()' возвращает 'Object []' only! Вам нужно вызвать 'toArray (новая строка [0])' (или лучше, указать правильный размер) – misberner

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 с Еогеасп внутри вашего метода:

protected void myFunction(ArrayList<String> myArrayList){ 
    for(String myParam : myArrayList){ 
     //do your stuff 
    } 
} 
Смежные вопросы