본문 바로가기
개발/코틀린(kotlin)

[kotlin]lateinit과 lazy

by darksilber 2019. 7. 9.
반응형

출처: https://twinparadox.tistory.com/428

 

Kotlin] lateinit과 lazy

lateinit과 lazy는 지연 초기화를 위해 사용함. 클래스 생성 동시에 사용하지 않는 변수에 대해서는 늦게 초기화할 때 사용하며, null은 필요한 경우에 한해서 명시. lateinit var에 사용하고, var이기 때문에 초..

twinparadox.tistory.com

lateinit과 lazy는 지연 초기화를 위해 사용함.

클래스 생성 동시에 사용하지 않는 변수에 대해서는 늦게 초기화할 때 사용하며, null은 필요한 경우에 한해서 명시.

 

lateinit

var에 사용하고, var이기 때문에 초기화 값을 변경할 수 있음.

null을 통해서 초기화하지 않고, 초기화 전까지 해당 var 변수에는 접근하지 못함.

변수에 대해서 getter, setter를 정의할 수 없음.

모든 변수에서 가능한 것은 아니며, primitive type에 대해서는 사용 불가능.

 

lazy

val에 사용하고, 호출 시점에 by lazy 정의로 초기화.

val에서만 사용하기 때문에 불변이며, 초기화를 위해서 함수명을 한 번이라도 적어줘야 함.

lazy을 사용하는 경우 기본 Synchronized로 동작.

 

 

값의 교체 유무나 Nullable 필요 여부에 따라서 적절히 선택하여 사용.



반응형

댓글