将Java Parcel创建者代码转换为Kotlin

我试图将我的Parcel Creator代码从Java转换为Kotlin。 自动代码转换器在这个失败,我不知道如何解决它。 我正在转换的代码是:

public static final Creator CREATOR = new Creator() { @Override public Save[] newArray(int size) { return new Save[size]; } @Override public Save createFromParcel(Parcel incoming) { return new Save(incoming); } }; 

我结束了这个:

 val CREATOR: Parcelable.Creator = object : Parcelable.Creator { override fun newArray(size: Int): Array { return arrayOfNulls(size) } override fun createFromParcel(incoming: Parcel): Save { return Save(incoming) } } 

它给出了arrayOfNulls(size)的“types推断失败”的错误。 我曾尝试将其更改为保存(大小),但也不起作用。 有任何想法吗?

在这种情况下, arrayOfNulls将返回一个可为null的元素Array 。 你应该改变你的函数的返回types以匹配。

 override fun newArray(size: Int): Array { return arrayOfNulls(size) } 

你可以尝试这个插件做Parcelable,只是建议,我从来没有尝试过,但遇到谷歌搜索。