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

Anc*_*rya 1 getter tostring getter-setter kotlin

我在kotlin 文档中找到了这段代码:

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

我不明白this.toString()这里有什么。this指整个对象。为什么每次访问对象时都希望将其转换为字符串?真的应该这样field.toString()吗?(但这也是多余的)

Ten*_*r04 5

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

getter 仅在stringRepresentation被访问时调用。

setter 没有使用支持字段,因此 getter 没有理由使用支持字段值。