gpt4 book ai didi

kotlin - Kotlin 中的 Setter 重载

转载 作者:IT老高 更新时间:2023-10-28 13:45:52 58 4
gpt4 key购买 nike

当试图定义一个接受可用于构造属性的参数类型的 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 开始,无法重载属性 setter 。此处跟踪功能请求:

https://youtrack.jetbrains.com/issue/KT-4075

目前,您必须在 String 上定义一个 buffer 扩展函数:

val String.buffer : Buffer
get() = Buffer(this)

并用

设置值
Foo().buffer = "123".buffer

关于kotlin - Kotlin 中的 Setter 重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43086327/

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