Avatar ·

Cómo evitar comprobaciones de null en Java: mejores prácticas y alternativas

¡Hola a todos! Soy un desarrollador Java principiante y me atormenta un problema. En mi código constantemente tengo que escribir comprobaciones de null, y se ve horrible. Por ejemplo, tengo un método que obtiene un objeto User de la base de datos, y si no es null, quiero obtener su nombre. Pero si el objeto es null, todo falla con NullPointerException. Así es como lo hago ahora:
public String getUserName(User user) {
    if (user != null) {
        return user.getName();
    }
    return "Unknown";
}
Y luego, cuando necesito obtener el nombre de objetos anidados, todo se vuelve aún peor:
public String getCityName(User user) {
    if (user != null) {
        Address address = user.getAddress();
        if (address != null) {
            City city = address.getCity();
            if (city != null) {
                return city.getName();
            }
        }
    }
    return "Unknown";
}
¡Esto es una pesadilla! El código se vuelve ilegible, por