Develop/Kotlin
2022. 5. 4.
backingField와 recursive call
Backing field class User(name: String) { var name: String = name get() = name set(value) {name = value} } 위와 같은 클래스가 있다고 할 때, 코틀린에서 해당 property를 get 혹은 set 할 때 재귀호출이 일어나게 된다. public fun main(){ println(User("mj").name) User("mj").name = "jyami" } 위와 같이 name 프로퍼티를 접근하는 것이 getter를 부르는 것과 같기 때문에 결국get() = this.get() 과 같이, getter를 부르면서 다시 getter를 호출하는 것과 같다. 마찬가지로 name 프로퍼티를 할당하는 것도 setter를 부르는 것과 같..