搜尋

首頁  >  問答  >  主體

android - java的LinkedHashMap序列化传递之后,只能反序列化为HashMap

发送之前数据结构:

private LinkedHashMap<Integer, LinkedHashMap<Integer, Integer>> selected = new LinkedHashMap<>();

通过

Bundle bundle = new Bundle();
bundle.putSerializable("data", selected);

传递到下一个activity之后,使用

getIntent().getBundleExtra(G.BUNDLE).getSerializable("data")

只能得到HashMap类型的数据结构,HashMap<Integer, HashMap<Integer, Integer>>;
这是为什么呢?

大家讲道理大家讲道理2768 天前1014

全部回覆(3)我來回復

  • 大家讲道理

    大家讲道理2017-04-17 17:14:41

    LinkedHashMap是HashMap的子類,嘗試進行明確型別轉換了嗎?

    回覆
    0
  • 阿神

    阿神2017-04-17 17:14:41

    轉換成json字串, 傳遞過去後再轉回來就行了.

    回覆
    0
  • PHPz

    PHPz2017-04-17 17:14:41

    LinkedHashMap沒有實現serializable的接口,它的父類HashMap實現了
    因此反序列化為HashMap,使用時可以強制顯式類型轉換

    回覆
    0
  • 取消回覆