Android Parcelable – запись и чтение ArrayList <IA>, когда IA является интерфейсом

У меня есть интерфейс 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); } 

Solutions Collecting From Web of "Android Parcelable – запись и чтение ArrayList <IA>, когда IA является интерфейсом"