类成员集(值)被递归调用…为什么?

我有一个类如下

class Employee(var person: String = "Employee", var worksAt: String = "California", var mood: String = "Happy") { var name: String = "Name: " set(value){ name = "Name: $value" } var allString: String private set init { this.allString = "$name works at $worksAt is $mood" this.person = "Person: " + person!! this.worksAt = "Work at: " + worksAt this.mood = "Mood :" + mood } override fun toString(): String { return this.name + "\n" + worksAt + "\n" + mood } } 

当我设置名称

  val reaEmployee = Employee() reaEmployee.name = edt_main.text.toString() 

名字得到设置递归无限…即获得Name: Name: .... $value …直到内存不足。 我有什么不正确的设置?

这是因为在name的setter里面,你再次设置了name ,这个name叫setter。

您应该使用field访问后台字段,而不是调用setter。

 field = "Name: $value"