我正在创建一个小型 testapp 来学习 kotlin 方式,但是 Parcelable 参数存在一些问题。
我创建了一个抽象类:
abstract class Goal(var number: Int, var name: String) : Parcelable
现在我试图用一个新类来扩展这个类,但是我有各种各样的构造问题:
@Parcelize
class OperationalGoal(number: Int, name: String, var description: String) : Goal(number, name)
它同时提示
number
和 name
, 我需要添加 val
或 var
.但是我已经在我的父类(super class)中定义了属性... 有办法解决这个问题吗?
最佳答案
对于 @Parcelize
工作你需要open
增加 super 的属性并在 child 中覆盖它们:
abstract class Goal(open var number: Int, open var name: String) : Parcelable
@Parcelize
class OperationalGoal(override var number: Int, override var name: String, var description: String) : Goal(number, name)
关于Kotlin:使用 parcelize 时的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55519545/