Kotlin:使用 parcelize 时的构造函数

标签 kotlin constructor parcelable

我正在创建一个小型 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)

它同时提示 numbername , 我需要添加 valvar .但是我已经在我的父类(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/

相关文章:

android - withContext(Dispatchers.IO) 如何用于房间

java - 创建参数化构造函数

Java Lombok : Omitting one field in @AllArgsConstructor?

Java Lombok : Omitting one field in @AllArgsConstructor?

android - Proguard 和 Object extends Parcelable - 解码时找不到类

android - 如何通过 Intent 下载和安装 APK 文件?

java - 如何用位运算替换这个字符串运算?

kotlin - Job 作为 CoroutineScope 和 launch 的参数有什么不同?

android - Parcelize 在对象和枚举上提示 "Parcelable should be a class"

java - 将值设置为静态变量返回错误