Я пытаюсь сделать интерфейс Parcelable, как таковой мне нужен интерфейс, как этотCompanion Объекты в Котлин Интерфейсы
interface AB : Parcelable {
companion object {
val CREATOR : Parcelable.Creator<AB>
}
}
и мои два класса А и В, глядя, как
data class A (...): Parcelable{
...
companion object {
val CREATOR : Parcelable.Creator<AB> = object : Parcelable.Creator<AB> {
override fun newArray(size: Int): Array<AB?> {
return arrayOfNulls(size)
}
override fun createFromParcel(parcel: Parcel): AB {
return A(parcel)
}
}
}
Я пытаясь реализовать такой интерфейс в котлине. Кажется, класс интерфейс не позволяет ТВОРЦУ
Возможно, я беру неправильный подход,
У меня есть parcelable, который содержит список классов, А или B , так что я делаю
parcel.readTypedList(this.list, AB.CREATOR)
Я требую, чтобы список был либо A, либо B, и именно поэтому я использую интерфейс.
У кого-нибудь есть совет или возможное решение?
Если вы получаете определенную ошибку компиляции, пожалуйста, напишите ошибку. –
Спасибо всем за вашу помощь, я не думаю, что хорошо описал свою проблему. В любом случае я решил это, выполнив этот ответ https://stackoverflow.com/questions/22576709/abstract-class-as-parcelable и переписав java в kotlin. Хорошо работает, только я больше не использую классы данных. Я попробовал ParcelPaper, но это не сработало для меня – user5910912