listをString配列に - Java

ListをString配列にするときに失敗した

ダメな例

ArrayList<String> list = new ArrayList<String>();
list.add("文字列");
String[] arr = list.toArray();

ジェネリック使ってるにもかかわらず、これだとObject[]が返ってくる


正しい方法

ArrayList<String> list = new ArrayList<String>();
list.add("文字列");
String[] arr = list.toArray(new String[0]);


こんな風に引数に配列の型を渡してやるのが正解.
ちなみにこのtoArrayメソッドはCollectionで定義されてる