当前位置: 首页 > 知识库问答 >
问题:

如果对象是可序列化/可打包的,那么数组是可序列化/可打包的吗

赖鸿羲
2023-03-14

我希望在Android中将一个对象数组从一个活动传递到另一个活动。我知道实现这一点的最佳方法是让传递的对象实现可打包的串行化的,如这里所解释的。

但是,如果我传递这些对象的数组,考虑到您现在传递的是实现这些接口的对象数组,而不是对象本身,这是否仍然有效?如果不是,我是否需要扩展一个类,例如ArrayList并实现这些接口,然后传递那个“数组”对象?

共有1个答案

司空奕
2023-03-14

据我所知,在数组上调用序列化会导致数组在其成员上递归调用序列化。但是,在5.0.1之前的Android版本中,似乎有一个错误会影响这一点https://stackoverflow.com/a/28720450/1541763

似乎打包数组在逻辑上遵循这一点,但取消聚合有点复杂:https://stackoverflow.com/a/10781119/1541763

 类似资料:
  • 本文向大家介绍Android中可打包和可序列化之间的区别,包括了Android中可打包和可序列化之间的区别的使用技巧和注意事项,需要的朋友参考一下 本示例演示了Android中可打包和可序列化之间的区别 可序列化 可序列化是一个可标记的接口,或者我们可以将其称为空接口。它没有任何预先实现的方法。可序列化将对象转换为字节流。因此,用户可以在一个活动到另一个活动之间传递数据。可序列化的主要优点是创建和

  • 问题内容: 当我尝试运行以下代码时: 我得到以下异常: 如何成功使用包含s的对象? 问题答案: 在序列化之前将集合变成列表,或使用自定义处理程序来这样做:

  • 我正在试验Stanford CoreNLP库,我想序列化主要的StanfordCoreNLP管道对象,尽管它抛出了一个java.io.NotSerializableException。 完整故事:每当我运行我的实现时,将管道注释器和分类器加载到内存中大约需要15秒。最终进程的内存约为600MB(很容易小到可以存储在我的机箱中)。我想在第一次创建管道后保存它,这样我就可以在以后将其读入内存。 然而,

  • 问题内容: 中的类对什么意味着什么?或者总的来说… 问题答案: 序列化将一个对象从内存持久存储到一系列位中,例如保存到磁盘上。反序列化是相反的-从磁盘读取数据以水合/创建对象。 就您的问题而言,它是一个接口,如果在一个类中实现,则该类可以由不同的序列化程序自动进行序列化和反序列化。

  • 问题内容: 如下代码: 引发以下异常: 我猜内部类具有一个允许对其私有访问的字段和方法的字段。声明内部类static 可以解决它,但是如果需要此访问权限怎么办?有没有一种方法可以在不包含封闭类的情况下序列化非静态内部类,例如通过引用外部类? 编辑:例如,仅在序列化之前才需要访问外部类。好的,编译器不知道这一点,但是我认为这就是关键字存在的原因。 问题答案: 如果InnerClass需要此访问权限怎

  • 问题内容: 我在android / java中对Location的子类进行序列化遇到了麻烦 位置不可序列化。我有一个名为FALocation的第一个子类,它没有任何实例变量。我已经宣布它可序列化。 然后,我有一个名为Waypoint的第二个类,看起来像这样: 序列化工作正常。 反序列化会产生跟随翼异常(腿对象包含一个航路点): 问题答案: 序列化位置绝对必要吗?也许您可以将其标记为瞬态,并在反序列