How is your Nullable example different than using Option.ofNullable?
StringzipCode=Optional.ofNullable(user).map(User::addresses).map(UserAddresses::billingAddress).map(Address::zipCode).orElse("...");// or .orElse(null) or .get() w/ exception handling
How is your
Nullable
example different than usingOption.ofNullable
?Ahh, I missed the intermediary
null
checks, this is more accurate:No, you didn’t. You can do it exactly as in your first example.
I confirm, the first example works.
But besidd that, this goes against rule of Demeter.
You should not have to access so many indirect attributes to get the zip code. User should expose a getZipCode method.