Sprawdź, czy ostatni getter w łańcuchu metod nie ma wartości NULL
W kodzie mamy na przykład wiele metod łańcuchowychobj.getA().getB().getC().getD()
. Chcę utworzyć klasę pomocnika, która sprawdzi, czy metodagetD()
nie jest null, ale wcześniej muszę sprawdzić wszystkie poprzednie programy pobierające. Mogę to zrobić w ten sposób:
try {
obj.getA().getB().getC().getD();
}
catch (NullPointerException e) {
// some getter is null
}
lub (co jest „głupie”)
if (obj!null && obj.getA()!=null && obj.getA().getB()!=null && ...) {
obj.getA().getB().getC().getD();
}
else {
// some getter is null
}
Nie chcę tego sprawdzać za każdym razemtry{} catch()
w moim kodzie. Jakie jest najlepsze rozwiązanie do tego celu?
Myślę, że najlepiej będzie:
obj.getA().getB().getC().getD().isNull()
- w tym celu będę musiał zmienić wszystkie moje gettery, na przykład zaimplementować jakiś interfejs, który zawieraisNull()
metoda.NullObjectHelper.isNull(obj.getA().getB().getC().getD());
- to będzie najlepsze (tak myślę), ale jak je wdrożyć?