How to check if a "lateinit" variable has been initialized?
In Kotlin, the
lateinit
keyword is used for those variables which are initialized after the declaration or we can say that the variable which is late initialized is called a lateinit variable.
The
lateinit
keyword is used when the developer is sure that the variable will be initialized before using it. For example, properties can be initialized through dependency injection or in a setup method of a unit test. So, in these cases, we can use the
lateinit
variable.
But there are cases when you try to access the not initialized lateinit variable and this, in turn, result in the following error:
lateinit property has not been initialized
So, in Kotlin 1.2 version, an improvement was made in the
lateinit
. Now, you can check if the
lateinit
variable has been initialized or not before using it with the help of
isInitialized
method. This method will return
true
if the lateinit property has been initialized otherwise it will return
false
. For example:
class Person {
lateinit var name: String
fun initializeName() {
println(this::name.isInitialized)
name = "MindOrks" // initializing name
println(this::name.isInitialized)
}
}
fun main(args: Array<String>) {
Person().initializeName()
}
The above function will return the following:
false
true
In this way, you can check if the lateinit variable has been initialized or not.
You can find Open-Source projects by MindOrks from here .
Have a look at our Interview Kit for company preparation.
Do share this tutorial with your fellow developers to spread the knowledge. You can read more blogs on Android on our blogging website .
Apply Now: MindOrks Android Online Course and Learn Advanced Android
Happy Learning :)
Team MindOrks!