Evitar un potencial NullPointerException en Java en comparaciones de String

A continuación un pequeño tip para evitar un potencial NullPointerException, una de las excepciones más comunes al momento de desarrollar en Java, además una de las más difíciles de rastrear.

Imaginemos que tenemos una clase Llama, tiene una función que devuelve un String llamada saySomething(), ahora supongamos que queremos saber si la llama dice “Ola k ase?”

A manera de ejercicio mental… ¿Cómo desarrollarías la comparación?

El modo más común a primera vista sería:

Llama.saySomething().equals(“Ola k ase?”)

Ejemplo:

if (Llama.saySomething().equals(“Ola k ase?”))
{
System.out.println(“La llama está saludando”);
}
else
{
System.out.println(“La llama no está saludando”);
}

Si la clase Llama es nula o la función saySomething() retorna null, se generará un NullPointerException… Pero con un pequeño cambio podemos evitar dicha excepción, de la siguiente manera:

if (“Ola k ase?”.equals(Llama.saySomething()))
{
System.out.println(“La llama está saludando”);
}
else
{
System.out.println(“La llama no está saludando”);
}

En este caso de prueba sí Llama.saySomething() es null no se generará una excepción sino que simplemente se ejecuta el código en el else.