Avatar ·

¿Qué es null/nil en Java y cómo trabajar con ello?

¡Hola a todos! Estoy aprendiendo los fundamentos de Java y me encontré con el concepto de null. En algunos lenguajes (por ejemplo, en SQL o Go) estoy acostumbrado al término nil. ¿Entiendo correctamente que en Java no existe nil y solo se usa null? Y si es así, ¿qué es exactamente: una referencia vacía o un valor especial?

El problema surgió cuando escribí un código simple con la clase User e intenté llamar a un método en un objeto que no había inicializado:

public class User {
    String name;

    void printName() {
        System.out.println(name.length());
    }

    public static void main(String[] args) {
        User user = null;
        user.printName(); // Aquí se lanza NullPointerException
    }
}

Esperaba que si user es igual a null, el método simplemente no hiciera nada o devolviera una cadena vacía. Pero en lugar de eso, el programa falla con un error.

Ya he intentado:

  • Verificar si