首页 > 解决方案 > Kotlin 数据类中的更新数据

问题描述

我在 Kotlin 中有一个数据类,其中的值相互依赖,

例如

data class test(
   var a: Int = 0,
   var b: Int = 10 + a,
)

如果a更新了 for 的值,我希望 for 的值b自动更改。

我怎样才能做到这一点?

标签: kotlindata-class

解决方案


您可以创建一个由另一个支持的属性,如下所示:

data class test(
    var a: Int = 0,
) {
    var b: Int
        get() = a + 10
        set(value) {
            a = value - 10
        }
}

或者甚至使它成为test类的扩展。

请注意b,构造函数不能设置。它不会自动包含在equals(),hashCode()和其他方法中。这实际上是有道理的,因为它实际上只是a.


推荐阅读