【发布时间】:2018-09-03 10:59:24
【问题描述】:
我在Stackoverflow 看到了这篇文章。如果我想将一个对象传递给另一个活动,那么该类应该是可序列化的。所以我的问题是,是否有可能实现可序列化到 Pojo 类?如果我要实现 Serializable 或 Parcelable 会不会有冲突?
【问题讨论】:
标签: java android firebase pojo
我在Stackoverflow 看到了这篇文章。如果我想将一个对象传递给另一个活动,那么该类应该是可序列化的。所以我的问题是,是否有可能实现可序列化到 Pojo 类?如果我要实现 Serializable 或 Parcelable 会不会有冲突?
【问题讨论】:
标签: java android firebase pojo
只要你的 POJO 的每个成员也实现了 Serializable,你应该没问题。
只有当你的 POJO 有一个子成员是另一个 POJO 并且 POJO 没有实现 Serializable 时才会有冲突。
String、int、enums 等成员默认情况下是可序列化的,所以你应该只关心没有实现可序列化的非平凡属性。
【讨论】:
是的,可以为 POJO 类实现 Serializable 或 Parcelable。 首先,做个小介绍: Serializable 是标准的 Java 接口。它正在使用反射,这是一个缓慢的过程。此方法会创建大量临时对象并导致大量垃圾收集。 Parcelable 过程比可序列化快得多。它是 Java Serializable 的 Android 实现。它采用某种结构和处理方式。与标准 Java 序列化相比,这种方式可以相对快速地处理 Parcelable。
【讨论】:
所以我的问题是,是否有可能实现可序列化到 Pojo 类?
是的。只需将 implements Serializable 添加到您的 POJO 类中,您的类将是 serializable。因此,如果您需要在活动之间传递对象,则您的类和子类必须是可序列化的。
public class ModelClass implements Serializable {}
如果我要实现 Serializable 或 Parcelable 会不会有冲突?
不,根本不会有冲突,但在使用一个或另一个界面时会有一些差异,您应该注意这一点。因此,我建议您查看以下帖子:Parcelable vs Serializable。
【讨论】: