프로그래밍/Kotlin
[Kotlin] lateinit vs lazy
DwEnn
2018. 8. 23. 15:08
728x90
반응형
lateinit vs lazy
Kotlin 에서 초기화 지연 방식 두 가지를 지원한다
lateinit
public class Test { lateinit var mock: Mock fun setup() { mock = Mock() } fun test() { mock.do() } }
lazy
public class Example{ val name: String by lazy { “Amit Shekhar” } }
언제, 어느것을 사용할지 선택하는 방법
- lazy 는 val 속성에만 사용할 수 있지만, lateinit 은 최종 필드로 컴파일 할 수 없기 때문에 vars 에만 적용 할 수 있으므로 불변성을 보장 할 수 없다.
- lateinit var 는 객체가 보이는 곳이라면 어디서든 초기화 될 수 있다. 외부에서 미리 알려지지 않은 방식으로 속성을 초기화 하려면 lateinit 을 사용하는 것이 좋다.
+ References
https://blog.mindorks.com/learn-kotlin-lateinit-vs-lazy
반응형