gpt4 book ai didi

kotlin - 覆盖默认构造函数中定义的变量的 setter

转载 作者:行者123 更新时间:2023-12-02 03:18:45 24 4
gpt4 key购买 nike

所以我有一个类似这样的 Kotlin 类:

class MyClass {
var myString: String = ""
set(value) {
field = value
doSomethingINeed()
}

constructor(myString: String) {
this.myString = myString
}
}

但是,Android Studio 警告我可以使用它作为默认构造函数。当我选择它时,它会将其更改为:

class MyClass(var myString: String)

现在我失去了重写 setter 的机会,因为如果我创建一个名为 setMyString() 的方法,我将收到编译器错误。

如果该字段是默认构造函数的一部分,是否有办法覆盖 setter,或者我是否必须使用选项 1 并忽略收到的警告?

最佳答案

它的快速修复肯定会把事情搞砸,但评论试图为您指出正确的方向。您想要定义一个仅接受参数(不定义属性)的主构造函数,然后使用该参数进行属性初始化。像这样的事情:

class MyClass(myString: String) {
var myString: String = myString
set(value) {
field = value
doSomethingINeed()
}
}

关于kotlin - 覆盖默认构造函数中定义的变量的 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44092496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com