-
lateinit 사용하기언어/Kotlin 2022. 3. 17. 22:58반응형
1. 문제
생성자에 속성 초기화를 위한 정보가 충분하지 않지만, 해당 속성을 널 비허용 속성으로 만들고 싶다.
2. 제약사항
lateinit 변경자는 클래스 몸체에서만 선언되고 사용자 정의 획득자(get())와 설정자(set())가 없는 var속성에서만 사용할 수 있다.
3. 예제
주로 Spring의 @Autowired에 많이 사용된다.
class BankTest { @Autowired lateinit var client: WebTestClient . . . }
4. lateinit과 lazy의 차이
- 초기화 비용이 높은데 lazy를 사용하면 초기화는 반드시 실패한다.
- lazy는 val 속성에 사용할 수 있는 반면 lateinit은 var 속성에만 적용할 수 있다.
- lateinit 속성은 속성에 접근할 수 있는 모든 곳에서 초기화할 수 있다.
반응형'언어 > Kotlin' 카테고리의 다른 글
영역함수 (apply, also, let) (0) 2022.03.19 함수 리턴의 표현 Unit과 Nothing (0) 2022.03.17 [EffectiveKotlin] 예외를 활용해 코드에 제한을 걸어라 (0) 2022.03.17 [EffectiveKotlin] 가독성을 목표로 설계하라 (0) 2022.03.16 [EffectiveKotlin] 타입을 명확하게 지정하라 (0) 2022.03.13