Null Seguro


Quando usamos o Java, uma grande quantidade do nosso código é defensivo. Precisamos verificar uma vez e outra se algo é nulo antes de usá-lo, se não quisermos encontrar o inesperado NullPointerException . O Kotlin tem seguro contra valores nulos, valida situações de valores nulos em tempo de compilação, para evitar exceções em tempo de execução.

Podemos fazer assim:

Kotlin

      
//Isso não irá compilar. Artist não pode ser nulo
var notNullArtist: Artist = null

//Artista pode ser nulo
var artist: Artist? = null

//Não compila, artist poderia ser nulo e precisamos lidar com isso
artist.print()

//Será impresso somente se artist! = Null
artist?.print()

// Não precisamos usar o operador previamente para verificar se é null
if (artist != null) {
    artist.print()
}

//Só use quando tiver certeza de que não é nulo. Vai lançar uma exceção caso contrário.
artist!!.print()

//Use o operador Elvis para dar uma alternativa caso o objeto seja nulo.
val name = artist?.name ?: "empty"