1. 程式人生 > >【FAQ問題記錄】ArrayList轉化為String[ ]陣列的問題。

【FAQ問題記錄】ArrayList轉化為String[ ]陣列的問題。

 我們都知道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