Я пытаюсь преобразовать код Parcel Creator из Java в Kotlin. Преобразование автоматического кода в этом случае не выполняется, и я не уверен, как его решить. Код, который я конвертирую:
public static final Creator<Save> CREATOR = new Creator<Save>() { @Override public Save[] newArray(int size) { return new Save[size]; } @Override public Save createFromParcel(Parcel incoming) { return new Save(incoming); } };
В итоге я получаю:
val CREATOR: Parcelable.Creator<Save> = object : Parcelable.Creator<Save> { override fun newArray(size: Int): Array<Save> { return arrayOfNulls(size) } override fun createFromParcel(incoming: Parcel): Save { return Save(incoming) } }
который дает ошибку, говоря «Ошибка вывода типа» для arrayOfNulls (размер). Я попытался изменить его на Сохранить (размер), но это тоже не сработает. Есть идеи?
arrayOfNulls
вернет массив элементов с arrayOfNulls
значением, Array<Save?>
в этом случае. Вы должны изменить тип возвращаемой функции в соответствии с этим.
override fun newArray(size: Int): Array<Save?> { return arrayOfNulls(size) }
Вы можете попробовать этот плагин, чтобы сделать Parcelable, просто предложение, я никогда не пробовал, но сталкивался с поиском в Интернете.