当前位置: 首页 > 知识库问答 >
问题:

如何在Kotlin中为非final变量设置private setter?

元鸿波
2023-03-14
data class Cat(var toys:Int=3, val type:String):Animal(){
    ...
}
fun addQuota(){toys+=4}

共有1个答案

管玉堂
2023-03-14

可以通过使用构造函数的属性作为toys属性的备份字段来实现这一点:

data class Cat(val type: String, private var toysField: Int = 3 ):Animal(){

    var toys = toysField
    private set(value){
        toysField = value
    }

    fun addQuota(){toys += 4}

}

abstract class Animal

我希望这能有空间。

来源https://discuss.kotlinlang.org/t/private-setter-for-var-in-primary-constructor/3640/10

 类似资料:
  • 我将一个字符串设置为activeElement.value,一切正常。现在,我想为activeElement.value设置一个变量,我得到了以下错误代码: 线程“main”中的异常 org.openqa.selenium.WebDriver异常:未定义患者 ID 命令持续时间或超时:66 毫秒 构建信息:版本:“2.45.0”,修订版:“5017cb8”,时间:“2015-02-26 23:59

  • 问题内容: 我正在使用WAMP。我想从命令提示符下使用php。为此,PATH env变量中的条目是什么? 问题答案: 你需要把具有目录在您安装到您。通常是这样的

  • 我在groovy/spock中测试了一个java类。java类有最后一个字段: 我想测试一个方法是否使用这个记录器,最好是使用模拟。问题是这个字段是最终的,所以我不能直接设置它。我知道有一些变通方法,比如: 修改ield.set字段field.get 但这些都是可怕的黑客。有没有更好的方法?

  • bash_profile像这样 当我给出时,我遇到了这个错误 错误:在Android SDK中找不到gradle包装器。可能需要更新Android SDK。看这里: /Users/subbarao/Library/Android/sdk/tools/templates/gradle/wrapper

  • 问题内容: 我需要在python脚本中设置一些环境变量,并且我希望从python调用的所有其他脚本(shell脚本)(将是子进程)来查看设置的环境变量。该值为数字。 如果这样做,它会抱怨说1必须是字符串。我也想知道一旦设置它,如何在python(在脚本的后半部分)中读取环境变量。 问题答案: 你可能需要考虑其他方面的代码健壮性; 当你将整数值的变量存储为环境变量时,请尝试 然后为了进行检索,请考虑

  • 问题内容: 如何从内部设置一些环境变量以与类似命令一起使用? 这是我目前所拥有的: 我想在启动脚本中设置环境变量(例如),同时仍然能够仅通过一个命令来启动应用程序。 问题答案: 在脚本命令中设置环境变量: 然后在您的应用中使用。 注意:确保它可以跨平台工作。如果只关心Mac / Linux,则可以忽略它。