代码之家  ›  专栏  ›  技术社区  ›  j2emanue

Kotlin-如何使映射可序列化

  •  -1
  • j2emanue  · 技术社区  · 6 年前

    我在android中编程(但对于这个问题,这可能无关紧要)。我有一张kotlin地图,定义如下:

    var filters: MutableMap<String, Any?>
    

    var b = Bundle()
    b.putSerializable("myFilter",filters) //- this gives a compile error that filters is not serializable. 
    

    我试过调用filters.toMap(),但这也不起作用。科特林是怎么做到的?如何在android中将地图发送到另一个屏幕?

    1 回复  |  直到 6 年前
        1
  •  6
  •   EpicPandaForce Jigar Joshi    6 年前

    使用HashMap代替MutableMap。

    捆绑包需要一个可序列化的对象。MutableMap是一个接口,因此不可序列化。HashMap是一个实现可序列化的具体类。您可以使用任何具体的Map子类来实现序列化

    val filters: HashMap<String, Any?> = HashMap()
    filters.put("a", 2)
    val b = Bundle()
    b.putSerializable("myFilter", filters)