Serializable和Parcelable的特点及比较

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中。

猜你喜欢

转载自blog.csdn.net/qq_31712553/article/details/80339143