get()中的 "this.toString() "有什么用?

问题描述 投票:1回答:1

我发现这段代码在 kotlin文档:

var stringRepresentation: String
get() = this.toString()
set(value) {
    setDataFromString(value) // parses the string and assigns values to other properties
}

我不明白 this.toString() 在这里是指。this 指的是整个对象。为什么我们要在每次访问对象时都将其转换为字符串呢?实际上,它应该是 field.toString()? (但那也是多余的)

kotlin tostring getter-setter getter
1个回答
5
投票

它可能来自于一个虚构的类,它可以通过将其属性值复制到JSON或其他序列化的String格式,将自己序列化成一个String。如果这些属性是可突变的,你会希望它在每次获取值时生成一个新的String。而且由于它有一个setter,这个虚构类的 setDataFromString 函数可能需要JSON或某种字符串表示,并将其反序列化为自己的属性。

getter只有在 stringRepresentation 被访问。

设置者没有使用后置字段,所以获取者没有理由使用后置字段的值。

© www.soinside.com 2019 - 2024. All rights reserved.