Kotlin – 继承自实现Parcelable的Java Class
我是Kotlin的新手,只是尝试一下。
我转换到Kotlin的项目中的第一个类有一个扩展RectF(实现Parcelable)的内部类。
static class MyClass extends RectF
转换为
internal class MyClass : RectF()
但有以下错误:
这个类实现了Parcelable,但是不提供CREATOR字段
试验中,我发现val CREATOR = RectF.CREATOR
MyClass中删除错误,但这是丑陋的黑客。
任何人都可以解释/解决这个问题吗?
非常感谢。
您必须遵守Parcelable
合同:
实现
Parcelable
接口的类还必须有一个名为CREATOR
的非null静态字段,该字段实现了Parcelable.Creator
接口。
但是你的黑客只能删除lint错误。 你应该直接为你的类实现RectF
,而不是重新使用RectF
。
internal class MyClass : RectF() { companion object { @JvmField val CREATOR = Parcelable.Creator() { ... } } }
- 错误:Jack需要支持Java 8语言功能。 启用插件或删除sourceCompatibility JavaVersion.VERSION_1_8
- Kotlin和Dagger2
- Android Studio / Kotlin – 无效错误“覆盖方法应该调用超级”
- 错误:(42,13)无法解析:com.android.support:appcompat-v7:26.0.1
- MQTT Android打盹模式(Android 7.0)
- 无法生成视图绑定器java.lang.IndexOutOfBoundsException
- Kotlin折叠和缩小的基本区别是什么? 什么时候用哪个?
- Android Studio 3.0 Preview重构Kotlin代码时缺少导入
- 将数据模型映射到域模型的简单方法