【问题标题】:ClassCastException: java.lang.Object[] cannot be cast to java.lang.String[][]ClassCastException:java.lang.Object[] 无法转换为 java.lang.String[][]
【发布时间】:2013-07-16 17:31:47
【问题描述】:

将二维数组传递给另一个活动时,我遇到了 Android 问题。我通过额外的可序列化发送它没有问题。但是在收到它时,我收到以下错误:

E/AndroidRuntime(7396):原因:java.lang.ClassCastException:java.lang.Object[] 无法转换为 java.lang.String[][]

我正在使用以下代码:

public void getMatriz(){
    Bundle extras = getIntent().getExtras(); 
    if(extras!=null){
        String[][] matriz = (String[][]) extras.getSerializable("matriz");

    }

}

有人可以帮我解决这个问题吗? 提前致谢。

【问题讨论】:

  • 你传递的二维字符串数组是不是很大?
  • 我认为这个例外是不言自明的。您不能将数组数组转换为数组。您需要进行手动转换。
  • @ArunAntony 不,不是很大。
  • @RohitJain 我不明白。它不是数组数组,而是二维数组。我按照在 StackOverflow 中找到的示例执行此操作。
  • @user2588434。是的,它们是一回事。

标签: java android arrays casting arraylist


【解决方案1】:

您需要反序列化以获取流数组。

例如下面的代码 sn -p 你可以将序列化为ObjectInputStream

ObjectInputStream ois = new ObjectInputStream(is);
return (String[][]) ois.readObject();

【讨论】:

  • 感谢 Minitech 的有用更改 :)
猜你喜欢
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多