首页 > 解决方案 > 如何链接变量,所以当我修改其中一个时,它们都被修改了?或者只是顶级的

问题描述

我在一个名为 ONE 的类中有 3 个变量 A、b 和 c

var a = 0
var b = 0
var c = 0

该类(第一类)是抽象的,由 3 个类(二、三、四)使用。选择的变量通过使用 when 语句进行更改。

var chosenVariable:Long
        chosenVariable= when (sign){
            1-> a
            2-> b
            3-> c
            else -> a
        }

请注意,符号是用户输入以决定选择哪个变量的内容。

我的问题是。当我修改时,chosenVariable我希望它更改设置为 a、b 或 c 的任何变量。

这可能吗?我认为它可能被称为实例化,但我似乎无法想出任何以这种方式搜索的东西。我想我需要用setter和getter以某种方式做到这一点?

标签: variableskotlin

解决方案


您可以使用KMutableProperty0<>类来保存对原始变量的引用:

var chosenVariable: KMutableProperty0<Long> = when (sign) {
        1-> ::a
        2-> ::b
        3-> ::c
        else -> ::a
}

// set value
chosenVariable.set(7)

它目前仅适用于全局变量。这是一些有用的信息


推荐阅读