2

我正在尝试将 2D 对象数组列转换为 1D 字符串数组;获取数据本身没有问题,但它是创建运行时错误的数据类型:

线程“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 [])进行强制转换,但显然不是......任何帮助表示赞赏!

4

2 回答 2

3

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

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

for (int i=0; i<currentData.length; i++)
    dataWanted[i] = currentData[i][1];
于 2012-05-08T14:21:22.580 回答
1

currentData是对象的二维数组,因此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];
}

如果这不是您想要完成的,那么请编辑您的问题以更具体。

于 2012-05-08T14:28:35.120 回答