作者:mobiledu2502883183 | 来源:互联网 | 2023-10-10 07:07
Serializable和Parcelable二者都是实现序列化的接口。Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体&
Serializable和Parcelable二者都是实现序列化的接口。
Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“可打包的”了。
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。Serializable的实现,只需要implements Serializable即可,这只是给对象打了一个标记,系统会自动将其序列化。
Parcelable的实现,需要在类中添加一个静态成员变量CREATOR,这个变量需要继承Parcelable.Creator接口。
比较:
Serializable是Java.io中的,不可被activity中的内部类被继承,否则出错;
Parcelable是Android特有的,比Serializable节省内存,可以传递Bundle对象,当我们有boolean型的变量可以现存在Bundle中。