【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

猜你喜欢

转载自blog.csdn.net/taojin12/article/details/84344901