【发布时间】:2018-05-05 07:07:29
【问题描述】:
我在一篇文章中发现了这一点。它实现了 Parcelable,用于在 Android 中的 Activity 之间传递数据
public class Student implements Parcelable {
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public Student createFromParcel(Parcel in) {
return new Student(in);
}
public Student[] newArray(int size) {
return new Student[size];
}
};
private long id;
private String name;
private String grade;
// Constructor
public Student(long id, String name, String grade){
this.id = id;
this.name = name;
this.grade = grade;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
// Parcelling part
public Student(Parcel in){
this.id = in.readLong();
this.name = in.readString();
this.grade = in.readString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(this.id);
dest.writeString(this.name);
dest.writeString(this.grade);
}
@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", grade='" + grade + '\'' +
'}';
}
}
在这个例子中,声明了一个字段 CREATOR 并实现了 Parcelable.Creator 接口。这是一个匿名类。这是否意味着匿名类也可以作为类的成员创建?我从其他来源了解到匿名类不能是静态的,但在这里它被声明为静态的。我不明白这个例子中匿名类的上下文。有人可以解释一下吗?
【问题讨论】:
-
你可以使用这个库github.com/johncarl81/parceler
标签: android parcelable anonymous-class