Wyobraź sobie, że mam klasową rodzinę. Zawiera listę osób. Każda (klasa) osoba zawiera adres (klasy). Każdy (klasa) adres zawiera (klasa) kod pocztowy. Każda klasa "pośrednia" może mieć wartość zerową.Java: unikaj sprawdzania wartości pustej w klasach zagnieżdżonych (sprawdzanie głębokiego zera)
Czy istnieje prosty sposób na uzyskanie kodu pocztowego bez konieczności sprawdzania wartości zerowej w każdym kroku? tzn. czy istnieje sposób na uniknięcie następującego kodu połączenia łańcuchowego? Wiem, że nie ma "natywnego" rozwiązania Java, ale liczyłem na to, że ktokolwiek wie o bibliotece lub czymś podobnym. (Zaznaczone Commons & Guava i nie widzi nic)
if(family != null) {
if(family.getPeople() != null) {
if(family.people.get(0) != null) {
if(people.get(0).getAddress() != null) {
if(people.get(0).getAddress().getPostalCode() != null) {
//FINALLY MADE IT TO DO SOMETHING!!!
}
}
}
}
}
Nie, nie może zmienić strukturę. To z usługi, nad którą nie mam kontroli.
Nie, nie mogę używać Groovy i jest to przydatny operator "Elvisa".
Nie, ja nie wolą czekać na Java 8: D
Nie mogę uwierzyć, że jestem pierwszym dev nigdy chorować „n zmęczony pisania kodu jak ten, ale haven” t udało się znaleźć rozwiązanie.
Pomysły?
Dzięki
-
llappall
Przepraszam, utknąłeś. Niektórzy używają warunkowego operatora trójwymiarowego, aby uczynić go nieco mniej gęstym, ale nadal jest to ten sam kod bajtowy, tylko trudniejszy do odczytania. –
"* Nie mogę uwierzyć, że jestem pierwszym dev, który kiedykolwiek zachorował, znużony pisaniem kodu takiego jak ten *" Cóż, nie jesteś. – user1329572
Pewnie. Ale nie wierzę, że możesz jeszcze bardziej pobić kod! Przepraszam! –