Kotlin - 从实现Parcelable的Java类继承

时间:2017-05-20 10:45:16

标签: java android kotlin

我是Kotlin的新手,只是尝试一下。

我转换为Kotlin的项目中的第一个类有一个扩展RectF(实现Parcelable)的内部类。

static class MyClass extends RectF

转换为

internal class MyClass : RectF()

但有以下错误:

  

此类实现Parcelable但不提供CREATOR字段

试验,我发现MyClass中的val CREATOR = RectF.CREATOR删除了错误,但这是丑陋的黑客攻击。

有人可以在这里解释/解决问题吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

您必须遵守Parcelable合同:

  

实现Parcelable接口的类还必须具有一个名为CREATOR的非空静态字段,该字段实现Parcelable.Creator接口。

但你的黑客只删除了lint错误。您应该直接为您的班级实施Parcelable.Creator,而不是重复使用RectF。{/ p>

internal class MyClass : RectF() {
    companion object {
        @JvmField
        val CREATOR = Parcelable.Creator() { ... }
    }
}