如果我有这样的层次结构情况:
class foo1{
Foo2 foo2;
}
class foo2 {
List<Foo3> foo3;
}
class foo3 {
}
class foo4 extends foo3 {
Foo5 foo;
}
class foo5 {
double value;
}
我想获得最终结果,double value
但要到达那里,我必须沿着层次结构向下检查所有空值。我可以做这样的事情:
if(foo1 != null) {
if(foo.foo2 != null) {
if(foo.foo2.foo3 != null) {
if( ((foo4) foo.foo2.foo3).getFoo5() != null) {
if(((foo4) foo.foo2.foo3).getFoo5().getValue() != null) {
//do something
}
}
}
}
}
但这看起来很丑陋,并且可能有一些更容易和更清洁的方法来实现相同的目标。我遇到过使用反射,但我不确定如何以上述方式使用它。任何想法如何在不抛出 NPE 的情况下做到这一点?