티스토리 뷰
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
반응형
'프로그래밍 > Kotlin' 카테고리의 다른 글
[Kotlin] lateinit var is initialized (0) | 2018.08.25 |
---|---|
[Kotlin] Kotlin 의 특수기호 (0) | 2018.08.25 |
[Kotlin] 배열에서 초기화 (0) | 2018.08.10 |
[Kotlin] Convert a char to int (0) | 2018.08.10 |
[Kotlin] Collections 초기화 (0) | 2018.08.10 |
공지사항
최근에 올라온 글