Home
Kotlin
Kotlin 지연 초기화 오류 (lateinit property [subject] has not been initialized)
devfoxstar
devfoxstar
March 16, 2023
1 min

Table Of Contents

01
오류
02
원인
03
참고
04
해결

오류


Kotlin에서 lateinit을 사용할 때 초기화 오류가 발생했습니다.
아래는 오류 메세지입니다.

lateinit property subject has not been initialized

원인


초기값 지정 전에 Property를 호출해서 오류가 발생했습니다.

아래는 오류를 구현한 간단한 코드입니다.
물론 현업에서 코드는 훨씬 복잡하겠죠.

# 오류 코드
lateinit var text: String
println(text)

# 오류 발생
Exception in thread "main" kotlin.UninitializedPropertyAccessException: lateinit property text has not been initialized

참고


lateinit은 지연 초기화 기능으로, Property를 선언하면서 초기값을 지정하지 않아도 됩니다.
이후 Property를 사용할 때, 값을 지정하고 사용하면 됩니다.

그리고 lateinit을 사용하면 필요할 때 값을 지정해서 성능 향상이 가능합니다.
또한 다른 로직을 수행 후에 값을 지정할 수 있어서 데이터 가변성을 확보할 수 있습니다.

해결


Property 호출 전에 초기값을 지정해 주면 해결됩니다.
아래는 lateinit 선언 후에 다른 작업을 수행하고 사용할 때 초기화를 하는 코드입니다.

코드가 단순하지만 현업에서는 훨씬 유용하고 다양하게 사용할 수 있는 기능입니다.

lateinit var text: String

//TODO

text = "lateinit"
println(text)

Tags

#Kotlin#lateinit#property#properties#initialized

Related Posts

Kotlin - invoke 함수
May 29, 2023
1 min
© 2024, All Rights Reserved.

Quick Links

About Me

Media