我试图将我的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)
}
}
出现错误,提示&#39;类型推断失败&#39; for arrayOfNulls(size)。我已经尝试将其更改为保存(大小),但这也不起作用。任何想法?
答案 0 :(得分:2)
arrayOfNulls
将返回一个可空元素数组Array<Save?>
。您应该更改函数的返回类型以匹配它。
override fun newArray(size: Int): Array<Save?> {
return arrayOfNulls(size)
}
答案 1 :(得分:0)
您可以尝试使用this插件来做Parcelable,只是建议,我从未尝试过,但在谷歌搜索时遇到过。