re: Better Null-Checking in Java VIEW POST


How is your Nullable example different than using Option.ofNullable?

String zipCode = Optional.ofNullable(user)
                   .orElse("..."); // or .orElse(null) or .get() w/ exception handling

Ahh, I missed the intermediary null checks, this is more accurate:

String zipCode = Optional.ofNullable(user)
                   .flatMap(user -> Optional.ofNullable(user.addresses()))
                   .flatMap(addresses -> Optional.ofNullable(addresses.billingAddress())
                   .flatMap(address -> Optional.ofNullable(address.zipCode())

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.

code of conduct - report abuse