I have define the data class as:
data class chatModel(var context:Context?) {
var chatManger:ChatManager?=null
//getter
get() = chat
You call the setter inside of the setter.. a.k.a. infinite loop:
set(value) {
/* execute setter logic */
chatManger = value
}
Inside a property getter or setter there is an additional variable available: field
. This represents the java backing field of that property.
get() = field
set(value) {
field = value
}
With a regular var property, these getters and setters are auto-generated. So, this is default behaviour and you don't have to override getter / setter if all you do is set the value to a field.