我有一个接口IA和B类和C实现它们。 B和C实现Parcelable
为好。
然后,我有棘手的问题:
d类具有ArrayList< IA >
我需要这在太插入两个类B和C arraylist
。 它们共享相同的结构,但“IS-A”的关系不适用。
我需要从一个活动传递d到另一个地块。
我试着写(ArrayList<IA>) in.readSerializable
,但我得到了一个IOException
。 我知道,如果IA不是一个接口问题很容易,但我似乎无法找到这样的一个简单的解决方案。
有任何想法吗?
@SuppressWarnings("unchecked")
public D (Parcel in) {
list = new ArrayList<IA>();
(...)
list = (ArrayList<IA>) in.readSerializable
}
@SuppressWarnings("rawtypes")
public static final Parcelable.Creator CREATOR =
new Parcelable.Creator() {
public D createFromParcel(Parcel in) {
return new D(in);
}
public D[] newArray(int size) {
return new D[size];
}
};
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
(...)
dest.writeList(list);
}