【发布时间】:2013-04-30 12:27:06
【问题描述】:
我有一个ArrayList<String>,我需要传递这个 ArrayList 中的每个字符串,作为这个函数的参数:
protected Void myFunction(String... params)
注意:我无法修改myFunction
【问题讨论】:
-
参数是
String数组,为什么要单独传递String?
我有一个ArrayList<String>,我需要传递这个 ArrayList 中的每个字符串,作为这个函数的参数:
protected Void myFunction(String... params)
注意:我无法修改myFunction
【问题讨论】:
String数组,为什么要单独传递String?
使用toArray 方法将其转换为数组:
myList.toArray(new String[myList.size()]);
【讨论】:
1.将其作为单独的字符串传递:
List<String> list = new ArrayList<String>();
for(String element:list){
myFunction(element);
}
2.传递一个字符串数组。
myFunction(list.toArray(new String[list.size()]));
【讨论】:
将arraylist转换为String数组,然后传递
instanceName.myFunction(list.toArray(new String[list.size()]));
注意:您不必更改方法的签名。
检查这个:http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#toArray()
【讨论】:
toArray() 仅返回 Object[]!您需要调用toArray(new String[0])(或者更好的是,提供正确的大小)
只需在参数中传递您的 ArrayList,然后在您的方法中使用 foreach 对 ArrayList 进行迭代:
protected void myFunction(ArrayList<String> myArrayList){
for(String myParam : myArrayList){
//do your stuff
}
}
【讨论】: