Junior — Middle
Can you explain the concept of null-safety in Kotlin and how it is implemented in the language?
sobes.tech AI
Answer from AI
The null-safety concept in Kotlin aims to prevent errors related to null references, which often lead to NullPointerException in Java.
In Kotlin, types are non-nullable by default. If a variable can hold null, its type is declared with a ?, for example, String?. The compiler enforces explicit handling of such cases.
Main null-safety mechanisms:
- Nullable types:
var name: String? = null— the variable can be null. - Safe call operator
?.: allows calling a method or accessing a property if the object is not null, otherwise returns null. - Elvis operator
?:: provides a default value if the expression on the left is null. - Not-null assertion operator
!!: forcibly converts a nullable type to a non-null type, throwing an exception if the value is null.
Example:
var name: String? = null
println(name?.length) // Outputs null, does not throw an error
println(name?.length ?: 0) // Outputs 0
// println(name!!.length) // Throws NullPointerException
Thus, Kotlin enforces explicit null handling by the programmer, increasing code safety.