0Pricing
Kotlin Academy · Lesson

lateinit and Lazy Initialization

Use lateinit for late-assigned properties and by lazy for deferred computation.

Two Tools for Late Setup

Sometimes you can't initialize a property at construction time. Kotlin gives you lateinit (for var, assigned later) and by lazy (for val, computed on first access).

lateinit Basics

lateinit var defers initialization. The variable must be a non-null, non-primitive var. Access before assignment throws UninitializedPropertyAccessException.

class Service {
    lateinit var name: String
    fun init(value: String) { name = value }
}
fun main() {
    val s = Service()
    s.init("MyService")
    println(s.name)
}

All lessons in this course

  1. Primary Constructor and Property Parameters
  2. init Blocks and Initialization Order
  3. Custom Getters and Setters with field
  4. lateinit and Lazy Initialization
← Back to Kotlin Academy