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)