Parcelable.CREATOR в абстрактном классе

Я пытаюсь передать ArrayList неизвестного типа класса, расширяющего абстрактный класс, другому действию с использованием Parcelable. Поскольку невозможно использовать Parcelable.CREATOR в абстрактном классе, возникает ошибка при попытке создать ArrayList: in.readTypedList(AbstractChannel.CREATOR), см. ниже:

public class TvNetwork implements Parcelable {
    public String name;
    public ArrayList<? extends AbstractChannel> mChannels;

    public TvNetwork(String name, ArrayList<? extends AbstractChannel> channels) {
        this.name = name;
        this.mChannels = channels;
    }

    protected TvNetwork(Parcel in) {
        name = in.readString();
        mChannels = in.readTypedList(AbstractChannel.CREATOR); // here is the error
    }

    public static final Creator<TvNetwork> CREATOR = new Creator<TvNetwork>() {
        @Override
        public TvNetwork createFromParcel(Parcel in) {
            return new TvNetwork(in);
        }

        @Override
        public TvNetwork[] newArray(int size) {
            return new TvNetwork[size];
        }
    };


    public ArrayList<? extends AbstractChannel> getChannels() {
        return mChannels;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeTypedList(mChannels);
    }

}

Писать, кажется, работает, но не читать. Это, очевидно, тоже не работает, но немного объясняет, что я хочу сделать:

in.readTypedList(mChannels, <? extends AbstractChannel>.class.getClassLoader());

Любые идеи?


person A.C    schedule 30.05.2020    source источник
comment
Какую ошибку вы получаете?   -  person sarcode    schedule 30.05.2020
comment
Отвечает ли это на ваш вопрос? Абстрактный класс как разделяемый   -  person kasptom    schedule 30.05.2020
comment
@kasptom: проблема в том, что я использую неизвестный тип класса, ‹? расширяет AbstractChannel› и из того, что я могу прочитать, невозможно использовать это с Parcelable.   -  person A.C    schedule 30.05.2020