Language/Kotlin

lateinit var와 lazy의 차이

Greensky0026 2021. 10. 17. 20:14
반응형

lateinit var

  • var 변수에서만 사용합니다.null 값으로 초기화 할 수 없습니다.초기화 전에는 변수를 사용할 수 없습니다.
  • Int, Long, Double, Float (primitive type) 에는 사용할 수 없습니다.
  • 변수에 대한 setter/getter properties 정의가 불가능합니다.

lazy

  • val변수에만 사용합니다.
  • 호출 시점에 by lazy 정의에 의해서 초기화를 진행합니다.
  • 초기화를 위해서는 함수명이라도 한번 적어줘야 합니다.
  • lazy을 사용하는 경우 기본 Synchronized로 동작합니다.
반응형