安装员在Kotlin超载
当试图定义一个接受可以用来构造一个属性的参数类型的setter时,
class Buffer(buf: String) {} class Foo { var buffer: Buffer? = null set(value: String) { field = Buffer(value) } }
我收到错误消息:
Setter参数类型必须等于属性的类型
那么Kotlin的做法是什么?
从Kotlin 1.1开始,不可能超载属性设置器。 功能请求在这里被跟踪:
https://youtrack.jetbrains.com/issue/KT-4075
目前,你将不得不在String
上定义一个buffer
扩展函数:
val String.buffer : Buffer get() = Buffer(this)
并设置值
Foo().buffer = "123".buffer