public static class A implements Parcelable {
private B b;
private List<C> cList = new ArrayList<>();
protected A(Parcel in) {
b = in.readParcelable(B.class.getClassLoader());
in.readTypedList(cList, C.CREATOR);
}
public static final Creator<A> CREATOR = new Creator<A>() {
@Override
public A createFromParcel(Parcel in) {
return new A(in);
}
@Override
public A[] newArray(int size) {
return new A[size];
}
};
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
public List<C> getCList() {
return cList;
}
public void setCList(List<C> cList) {
this.cList = cList;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(b, flags);
dest.writeTypedList(cList);
}
}
public class B implements Parcelable {
private String str;
private int i;
protected B(Parcel in) {
str = in.readString();
i = in.readInt();
}
public static final Creator<B> CREATOR = new Creator<B>() {
@Override
public B createFromParcel(Parcel in) {
return new SalesGoods(in);
}
@Override
public B[] newArray(int size) {
return new B[size];
}
};
public String getStr) {
return str;
}
public void setStr(String str) {
this.str = str;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(str);
dest.writeInt(i);
}
}
public static class C implements Parcelable {
private String str;
private B b;
protected C(Parcel in) {
str = in.readString();
b = in.readParcelable(B.class.getClassLoader());
}
public static final Creator<C> CREATOR = new Creator<C>() {
@Override
public C createFromParcel(Parcel in) {
return new C(in);
}
@Override
public C[] newArray(int size) {
return new C[size];
}
};
public String getStr() {
return str;
}
public void setStr(String str) {
this. str = str;
}
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(str);
dest.writeParcelable(b, flags);
}
}
Class C中属性b的序列变化writeToParcel函数中需要写到str下面,否则会反序列化不出b属性