该示例来自我正在做的 Kotlin 课程:
class Car {
var speed: Int = 0
get() = field
set(value) {
field = value
}
}
Run Code Online (Sandbox Code Playgroud)
如果我喜欢使用这样的主构造函数:
class Car(var speed: Int)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我将如何编写 getter/setter?
Ani*_*ahu 14
您不能在构造函数中编写 getter/setter,您可以执行以下操作:
class Car(speed: Int) {
var speed = speed
get() = field
set(value) {
field = value
}
}
Run Code Online (Sandbox Code Playgroud)
@JvmField注解限制编译器不自动生成 getter/setter 并自己实现class Car(@JvmField private var speed: Int) {
fun getSpeed() = speed
fun setSpeed(value: Int) { speed = value }
}
Run Code Online (Sandbox Code Playgroud)
您可以使用构造函数中的值初始化您的属性:
class Car(speed: Int) {
var speed: Int = speed
get() = field
set(value) {
field = value
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |