Android可以在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]; } };
现在试图在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) } } }
arrayOfNulls
不会编译需要KwerendaGraficzna
而它声称它收到KwerendaGraficzna?
那我该怎么做呢?
我怀疑你正在使用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) } } }
由于Parcelable.Creator
需要一个公共静态字段,我们需要用@JvmField
和JvmStatic
标记CREATOR
属性。
- 引起:android.database.sqlite.SQLiteException:近“org”:语法错误(代码1):,编译时:
- 发布到UI线程
- 在显示片段时,防止点击活动中的按钮
- jacoco安卓gradle插件android kotlin项目后android android gradle插件到版本3(测试版)
- Android上的Kotlin:将光标映射到列表
- android studio 3.0中的Kotlin-android和kotlin-android-extensions之间的区别
- Unity C#和Layar SDK Java – AndroidJavaException
- Android上的缩放问题 – 为什么图片如此笨拙?
- 当我退出应用程序时,为什么在Android应用程序中使用Kotlin / rxJava编写android.os.TransactionTooLargeException? (的OnExit /的onPause)?