Ideone でテストしました (Java6 を使用):
import java.util.*;
import java.lang.*;
class Main{
public static void main (String[] args) throws java.lang.Exception{
testIterable(getStringList());
}
public static ArrayList<String> getStringList(){
ArrayList<String> stringList = new ArrayList<String>();
stringList.add("String one");
stringList.add("String two");
return stringList;
}
public static void testIterable(Object...objects){
for(Object object : objects){
System.out.println("Object: "+ object.toString());
}
}
}
予想される出力は次のようになります。
オブジェクト: ストリング ワン
オブジェクト: ストリング 2
残念ながら、出力は次のようになりました。
オブジェクト: [ストリング 1、ストリング 2]
したがって、ArrayList 全体を 1 つのオブジェクトとして取りました。
編集:
ただし、ArrayList を String[] に変換すると、目的の動作が生成され、簡単な作業になります。
public static String[] convertToArray(ArrayList<String> stringList){
String[] stringArray = new String[stringList.size()];
// If we use toArray() without an argument, it will return Object[]
return stringList.toArray(stringArray);
}
イデオネ リンク