このような階層状況がある場合:
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を投げずにそれを行う方法はありますか?