Validación de Nulo en String con equals()

Me pregunto ¿Cuantas veces hemos validado una cadena con otra y obtenido un asqueroso Null Pointer? Seguramente muchas!! Por eso que hoy les mostraré un pequeño "truco" para evitar esta excepción cuando usemos el método equals() Este truco también es conocido como Yoda Validation (Haber visto la película de Star wars tu debes) Este pequeño cambio se basa en invertir el orden en el que se ponen las cadenas (Strings) al usar el equals(), veamos el Ejemplo:

 
 class YodaValidation {

    public static void main(String[] arg) {
        String unaFeaCadenaNula = null;
        //Al validar la cadena nula que no se controla dentro 
        //del método equals() obtenemos una excepción
        try {
            if (unaFeaCadenaNula.equals("Javero")) {
                System.out.println("Visita JaverosAnonimos.com");
            }
        } catch (NullPointerException nEx) {
            System.out.println("Hemos intentado validar un nulo... ");
        }
        //Al validar la cadena nula de forma invertida se evita la excepción
        //equals() controla la excepción y No se necesita el try en este caso
        //regresa false
        if ("Javero".equals(unaFeaCadenaNula)) {
            System.out.println("Visita JaverosAnonimos.com");
        }else{
            System.out.println("Hemos evitado la excepción");
        }
        
    }
}

Básicamente lo que evita el nulo es asegurarnos que la primer cadena nunca sea nula, en este caso como es una cadena "fija" no se corre el riesgo que en algún momento cambie el valor. Por lo demás el método equals() controla la excepción internamente y al recibir un argumento nulo regresa false. Regresa solo true cuando la secuencia de caracteres comparados (cadena) es idéntica a la otra.

2 Comentarios

Publicar un comentario

Artículo Anterior Artículo Siguiente