您的位置:首页 > 编程语言 > Java开发

【Java】ArrayList<String>转化为String数组问题

2017-06-01 17:34 381 查看
Java的容器类Collections中toArray()方法,可以把诸如ArrayList<String>的动态数组、不定长转化静态数组、定长数组String[]
但是,如下的转化方式是错误的。

[java] view
plain copy

 print?

String[] strArray = (String[]) arrayList.toArray();  

如果这样执行会导致如下的错误:

Exception in thread "xx" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

如下图:



正确的方式应该写成:

[java] view
plain copy

 print?

String[] strArrayTrue = (String[]) arrayList.toArray(new String[0]);  

比如,如下的一段程序,是正常的:

[java] view
plain copy

 print?

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();  

  

    }  

  

}  

同理推广到数组ArrayList<Integer>等

转自:http://blog.csdn.net/yongh701/article/details/45168121
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: