【FAQ問題記錄】ArrayList轉化為String[ ]陣列的問題。
阿新 • • 發佈:2018-11-30
我們都知道ArrayList 提供了轉化為陣列的方法toArray()
public Object[] toArray() {
return Arrays.copyOf(elementData, size);
}
在專案中我們需要將ArrayList<String> 轉化為陣列的時候,toArray是不可用的
控制檯會報錯如下:
Exception in thread "xx" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
正確的方式應該寫成:
String[] data = (String[])classifyList.toArray(new String[0]);
比如,如下的一段程式,是正常的:
import java.util.*; public class ArrayListToStrArr { public static void main(String[] args) { ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("1"); arrayList.add("2"); // 正確轉化方式 String[] strArrayTrue = (String[]) arrayList.toArray(new String[0]); for (String str : strArrayTrue) { System.out.println(str); } // 錯誤的轉化方式 // String[] strArray = (String[]) arrayList.toArray(); } }
轉自:http://blog.csdn.net/yongh701/article/details/45168121