Translate

miércoles, 21 de noviembre de 2018

Luchando contra NullPointerException con Kotlin


La excepción que más se encuentra en los logs de la aplicaciones Java es NullPointerException, y esto es esperable ya que java no trae mecanismos de chequeo de nulos. Solo el if, pero es muy manual y al no ser null un objeto, se hace bastante difícil tener que checkear nulos con un if todo el tiempo.

En cambio kotlin aprendió de esto y ha implementado varios mecanismos para prevenir los NullPointerException.

El primero, no podemos asignar null a un tipo común, no compila:

var a: String = "abc"
a = null // error de compilación

Tenemos que expresamente indicar que este tipo permite nulos :

var b: String? = "abc"
b = null // ok
print(b)

Ahora bien si nosotros llamamos a un método de b y no comprobamos que no sea nulo, no funciona:

val l = b.length // error: variable 'b' can be null

Tira error de compilación. Nosotros debemos comprobar que esto no sea nulo:

val l = if (b != null) b.length else -1

Bueno, hasta aquí un primer paso, en próximo post seguimos con los operadores antinull.