我正在创建一个小的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
。但是我已经在我的超类中定义了属性...
有没有办法解决这个问题?
答案 0 :(得分:1)
要使@Parcelize
工作,您需要open
设置超级属性并在子级中覆盖它们:
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)