ssu*_*ukk 10 android parcelable kotlin
我有这样的Java parcelable:
@SuppressWarnings("rawtypes")
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public KwerendaGraficzna createFromParcel(Parcel in) {
return new KwerendaGraficzna(in);
}
public KwerendaGraficzna[] newArray(int size) {
return new KwerendaGraficzna[size];
}
};
Run Code Online (Sandbox Code Playgroud)
现在尝试在Kotlin中实现它:
companion object {
@SuppressWarnings("rawtypes")
val CREATOR: Parcelable.Creator<KwerendaGraficzna!> = object : Parcelable.Creator<KwerendaGraficzna!> {
override fun createFromParcel(`in`: Parcel): KwerendaGraficzna {
return KwerendaGraficzna(`in`)
}
override fun newArray(size: Int): Array<KwerendaGraficzna!> {
return arrayOfNulls<KwerendaGraficzna!>(size)
}
}
}
Run Code Online (Sandbox Code Playgroud)
arrayOfNullsKwerendaGraficzna在声称收到要求时不会编译KwerendaGraficzna?
那我该怎么做?
mie*_*sol 15
我怀疑你使用过时版本的Kotlin编译器(因为你使用!).这是一个使用最新版本正确编译的版本:
companion object {
@JvmField
val CREATOR = object : Parcelable.Creator<KwerendaGraficzna> {
override fun createFromParcel(`in`: Parcel): KwerendaGraficzna {
return KwerendaGraficzna(`in`)
}
override fun newArray(size: Int): Array<KwerendaGraficzna?> {
return arrayOfNulls(size)
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于Parcelable.Creator需要公共静态字段,我们需要CREATOR使用@JvmField和标记属性JvmStatic.
| 归档时间: |
|
| 查看次数: |
2698 次 |
| 最近记录: |