Java如何将List <object []>转换为String []

时间:2015-10-09 14:57:48

标签: java arrays arraylist

我找到了convert List< Object >String[]的很多方法,但它对List< Object[] >无效。 我收到了错误:

java.lang.RuntimeException: java.lang.ClassCastException:
[Ljava.lang.String; cannot be cast to java.lang.String

代码:

public String[] listToArray(List<Object[]> inputList) {
        String[] outputArray = new String[inputList.size()];
        int index = 0;
        for(Object obj : inputList) {
            outputArray[index] = (String) obj;
            index++;
        }
        return outputArray;
    }

1 个答案:

答案 0 :(得分:2)

以下是我对您的代码所做的更改,以克服类强制转换异常和可能发生的其他可能异常。您的列表包含object []而不是Object。因此,转换为String会抛出错误。您可以通过在2个级别迭代它来避免它,一个用于列表中的每个对象[],然后是对象[]中的每个对象。由于你的List是Object []类型,你的代码初始化列表大小的String []在所有情况下都不正确,你可能最终得到Array索引超出范围异常,因此我将每个字符串添加到列表然后转换在最后一步列出到数组。

 public static String[] listToArray(List<Object[]> inputList) {
        List<String> outputList = new ArrayList<String>();
        for(Object[] obj : inputList) {
            for(Object obj1 : obj)
            {
                outputList.add((String) obj1);
            }
        }
        return outputList.toArray(new String[outputList.size()]);
    }