您的位置:首页 > 其它

Serializable和Parcelable

2016-03-28 23:01 197 查看
相同:两个接口都是为了实现序列号,方便数据的传输

不同:parcelable效率更高,本质是把对象的属性用Int,String类型传输

Serializable更方便,把整个对象序列化传输

note:当一个对象里面的属性还有对象,里面的对象也要实现相应的接口

Serializable使用:直接实现接口

public class People implements Serializable{

private String name ;
private int sex ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
@Override
public String toString() {
return "People [name=" + name + ", sex=" + sex + "]";
}

}


Parcelable写法:

public class Student implements Parcelable{

private String firstName ;
private String lastName ;
private int year ;

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public int getYear() {
return year;
}

public void setYear(int year) {
this.year = year;
}

@Override
public String toString() {
return "Student [firstName=" + firstName + ", lastName=" + lastName
+ ", year=" + year + "]";
}

@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeString(firstName);
dest.writeString(lastName);
dest.writeInt(year);
}

public static final Parcelable.Creator<Student> CREATOR = new Parcelable.Creator<Student>() {

@Override
public Student createFromParcel(Parcel source) {
// TODO Auto-generated method stub
Student student = new Student() ;
student.firstName = source.readString() ;
student.lastName = source.readString() ;
student.year = source.readInt() ;
return student;
}

@Override
public Student[] newArray(int size) {
// TODO Auto-generated method stub
return new Student[size];
}
};

}


代码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: