Android开发学习

Serializable 和Parcelable

2018-06-22  本文已影响33人  feifei_fly
Serializable

Serializable 是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。

实现 Serializable 只需要声明实现Serializable接口,并声明一个serialVersionUID。

public class Person implements Serializable{
    private static final long serialVersionUID = 7382351359868556980L;
    private String name;
    private int age;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Parcelable

Parcelable 是Android中所特有的,也可以实现在网络上进行传输,也可以存储到本地的功能。

实现Parcelable接口需要

(1)复写describeContents方法和writeToParcel方法

(2)实例化静态内部对象CREATOR,实现接口Parcelable.Creator。

(3)writeToParcel写的顺序和CREATOR中读的顺序必须一致。

public class Pen implements Parcelable{
    private String color;
    private int size;
    protected Pen(Parcel in) {
        color = in.readString();
        size = in.readInt();
    }
    public static final Creator<Pen> CREATOR = new Creator<Pen>() {
        @Override
        public Pen createFromParcel(Parcel in) {
            return new Pen(in);
        }
        @Override
        public Pen[] newArray(int size) {
            return new Pen[size];
        }
    };
    @Override
    public int describeContents() {
        return 0;
    }
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(color);
        dest.writeInt(size);
    }
}

作者:阿敏其人
链接:https://www.jianshu.com/p/a60b609ec7e7
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

应用场景:

上一篇下一篇

猜你喜欢

热点阅读