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() { ... } } }