将2D对象数组的列转换为1D String数组

时间:2012-05-08 14:18:35

标签: java arrays string object casting

我正在尝试将2D Object数组列转换为1D String数组;获取数据本身没有问题,但是数据类型会产生运行时错误:

  

线程“AWT-EventQueue-0”中的异常java.lang.ClassCastException:java.lang.String   无法转换为[Ljava.lang.String;

这是我正在使用的代码片段的一个示例:

Object[][] currentData = BackOffice.getData();
String[] dataWanted = null;

    for (int i=0; i<currentData.length; i++)
        dataWanted = (String[])currentData[i][1];

我以为我可以通过使用(String [])来逃避,但显然不是...... 任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

如果我理解正确,你想做:

String[] dataWanted = new String[currentData.length];

for (int i=0; i<currentData.length; i++)
    dataWanted[i] = currentData[i][1];

答案 1 :(得分:1)

currentData是一个对象的2D数组,因此currentData[i][1]计算为单个对象。 dataWanted是一个字符串数组。您不能将单个Object转换为数组类型。此外,必须在插入项之前使用大小初始化数组。如果您想将每个对象放入dataWanted数组中,您需要这样的内容:

String[] dataWanted = new String[currentData.length];
for (int i = 0; i < currentData.length; i++) {
    dataWanted[i] = (String)currentData[i][1];
}

如果这不是您要完成的任务,请将您的问题编辑为更具体。