现有的Parcelable示例相当简单。如果您有一个复杂的对象图,那么很快就会出现以下问题:
为了给出第一个问题的例子,对象A引用B,它又引用A.这个循环导致写A,B,A,B,A,...直到我们得到StackOverflowError,因为没有似乎是一种只引用先前写过的对象的方法。
对于第二个问题,我们有一个长图A-> B-> C-> D-> E,我们希望序列化A的附加深度为2,这将只是A- > B-&℃。我们通过编写自定义的writeToParcelDeep方法来做到这一点,这当然不如标准的writeToParcel方便。
答案 0 :(得分:0)
Java序列化将保留引用并只写一次对象。目前的设备比过去的设备功能强大得多,而且我不太确定性能增益是否可以证明编写Parcelable biolerplate代码特别复杂,如你的例子所示。
我将继续使用序列化,您可以阅读有关此主题的here的更多相关内容。