У меня есть этот класс:
public class Foo implements Parcelable {
private int id;
private MyFoo myFoo
private ForeignCollection<MyFoo2> myFoo2s;
public void writeToParcel(Parcel out, int flags) {
out.writeInt(id);
out.writeParcel(myFoo, flags);
out.write //How can I write the ForeignCollection?
}
public Foo(Parcel in) {
id = in.readInt();
myFoo = in.readParcelable(getClass().getClassLoader())
myFoo2s = // How can I read the ForeignCollection?
}
public static final Parcelable.Creator<Foo> CREATOR = new Parcelable.Creator<Foo>() {
public Foo createFromParcel(Parcel in) {
return new Foo(in);
}
public Foo[] newArray(int size) {
return new Foo[size];
}
};
}
Классы MyFoo и MyFoo2 также реализуют Parcelable, но ForeignCollection этого не делает. ForeignCollection — это класс, реализующий интерфейсы: Коллекция, CloseableIterable и Iterable.
Я не могу использовать out.writeList
, потому что ForeignCollection не реализует интерфейс списка.