Hola:
Desde el punto de vista de encapsulación de objetos no es correcto hacer ese tipo de llamaddas o1.getO2().getO3().getO4().getValor(). El código que usa esto "sabe" que objeto1 tiene dentro un objeto2 que tiene dentro un objeto3 que a su vez tiene un objeto4, es decir, conoce las "interioridades" de objeto1 hasta 4 niveles de profundidad. Lo correcto sreía que o1 tuviera directamente un getValor() y objeto2 tambien y objeto3 también y objeto4 también. El getValor() de objeto1 devolveria el o2.getValor() y este devolververía el o3.getValor() y así sucesivamente. Esto, además de ser más correcto, solucionaría tu problema, ya que la comprobación de si alguno es null la haría cada objeto sólo del objeto que tiene por debajo. objeto1 tendría
Código Java:
Ver original if (o2 != null)
return o2.getValor()
else
return null;
}
Lo de o1.geto2().geto3().geto4() lo prohíbe la ley de Demeter y es contra el patrón "no hables con extraños"
http://certified-es.blogspot.com.es/...la-ley-de.html
Si no quieres hacer esto, la única forma de evitar todos esos null sería meter esa llamada en un try-catch
Código Java:
Ver originalObjet valor=null;
try {
valor = objeto1.getObjeto2().getObjeto3().getObjeto4().get Valor();
}
Se bueno.