安装员不要求Kotlin POJO

我写了一个简单的POJO(或POKO),并希望将其用于在Kotlin编写的Android应用程序内的数据绑定。 我的问题,setter中的代码不被调用。 我希望在控制台中看到Set value to <> 。 任何想法为什么这不发生?

这是我在try.kotlinlang.org发布的代码:

 fun main(args: Array<String>) { var myData = MyData() println(myData.helloWorldText) println(myData.helloWorldText) println(myData.helloWorldText) println(myData.helloWorldText) } class MyData { private val values = listOf<String>("Oh...", "Oh captain...", "Oh captain, my ...", "Oh captain, my captain...") private var i = -1 var helloWorldText: String = "" get() = values[++i % values.size] set(value) { println("Set value to " + field) } } 

背景信息:后来我想让我的POJO实现android.databinding.Observable并在setter中调用registry.notifyChange(this, BR.helloWorldText)

代码从来不叫setter,只有getter。

感谢您帮助解决问题的意见。 此代码按预期运行:

 fun main(args: Array<String>) { var myData = MyData() println(myData.helloWorldText) myData.nextValuePlease() println(myData.helloWorldText) } class MyData { private val values = listOf<String>("Oh...", "Oh captain...", "Oh captain, my ...", "Oh captain, my captain...") private var i = 0 fun nextValuePlease() { i = ++i % values.size helloWorldText = helloWorldText } var helloWorldText: String get() = values[i] set(value) { println("Set value to \"" + value+"\"") } }