我是Kotlin的新手,只是尝试一下。
我转换为Kotlin的项目中的第一个类有一个扩展RectF(实现Parcelable)的内部类。
static class MyClass extends RectF
转换为
internal class MyClass : RectF()
但有以下错误:
此类实现Parcelable但不提供CREATOR字段
试验,我发现MyClass中的val CREATOR = RectF.CREATOR
删除了错误,但这是丑陋的黑客攻击。
有人可以在这里解释/解决问题吗?
非常感谢。
答案 0 :(得分:3)
您必须遵守Parcelable
合同:
实现
Parcelable
接口的类还必须具有一个名为CREATOR
的非空静态字段,该字段实现Parcelable.Creator
接口。
但你的黑客只删除了lint错误。您应该直接为您的班级实施Parcelable.Creator
,而不是重复使用RectF
。{/ p>
internal class MyClass : RectF() {
companion object {
@JvmField
val CREATOR = Parcelable.Creator() { ... }
}
}