Android 在Parcelable中存储复杂对象图?

Android 在Parcelable中存储复杂对象图?,android,parcelable,Android,Parcelable,现有的可包裹的例子相当琐碎。如果您有一个复杂的对象图,那么下面的问题很快就会出现,质疑其可行性: 有没有办法防止一个对象被多次写入一个包裹 在编写对象图时,是否有限制对象图深度的最佳实践 为了给第一个问题举个例子,对象A引用B,而B又引用A。这个循环导致写A,B,A,B,A。。。直到我们得到一个StackOverflowerError,因为似乎没有一种方法可以仅仅引用一个以前写过的对象 对于第二个问题,我们有一个长图a->B->C->D->E,我们想用额外的深度2序列化a,这将只是a->B->C

现有的可包裹的例子相当琐碎。如果您有一个复杂的对象图,那么下面的问题很快就会出现,质疑其可行性:

  • 有没有办法防止一个对象被多次写入一个包裹
  • 在编写对象图时,是否有限制对象图深度的最佳实践
  • 为了给第一个问题举个例子,对象A引用B,而B又引用A。这个循环导致写A,B,A,B,A。。。直到我们得到一个StackOverflowerError,因为似乎没有一种方法可以仅仅引用一个以前写过的对象


    对于第二个问题,我们有一个长图a->B->C->D->E,我们想用额外的深度2序列化a,这将只是a->B->C。我们通过编写一个定制的writeToParcelDeep方法来实现,这当然不如标准的writeToParcel方便。

    Java序列化将保留引用并只编写一次对象。此外,当前的设备比过去的设备功能强大得多,我不太确定性能的提高是否足以证明编写可打包的biolerplate代码是合理的,尤其是像您的示例中那样复杂的代码

    我将继续使用serializable,您可以阅读更多关于我在这个主题上的发现