Setter Kotlin 中的重载
Setter overloading in Kotlin
当尝试定义接受可用于构造 属性 的参数类型的 setter 时,因此:
class Buffer(buf: String) {}
class Foo {
var buffer: Buffer? = null
set(value: String) {
field = Buffer(value)
}
}
我收到错误消息:
Setter parameter type must be equal to the type of the property
那么 Kotlin 这样做的方式是什么意思?
从 Kotlin 1.1 开始,无法重载 属性 设置器。功能请求在此处跟踪:
https://youtrack.jetbrains.com/issue/KT-4075
目前,您必须在 String
上定义一个 buffer
扩展函数:
val String.buffer : Buffer
get() = Buffer(this)
并使用
设置值
Foo().buffer = "123".buffer
当尝试定义接受可用于构造 属性 的参数类型的 setter 时,因此:
class Buffer(buf: String) {}
class Foo {
var buffer: Buffer? = null
set(value: String) {
field = Buffer(value)
}
}
我收到错误消息:
Setter parameter type must be equal to the type of the property
那么 Kotlin 这样做的方式是什么意思?
从 Kotlin 1.1 开始,无法重载 属性 设置器。功能请求在此处跟踪:
https://youtrack.jetbrains.com/issue/KT-4075
目前,您必须在 String
上定义一个 buffer
扩展函数:
val String.buffer : Buffer
get() = Buffer(this)
并使用
设置值Foo().buffer = "123".buffer