โ— Shell
clean mode source โ†—

Optional chaining

Code Comparison

String city = null;
if (user != null) {
    Address addr = user.getAddress();
    if (addr != null) {
        city = addr.getCity();
    }
}
if (city == null) city = "Unknown";
String city = Optional.ofNullable(user)
    .map(User::address)
    .map(Address::city)
    .orElse("Unknown");

Why the modern way wins

๐Ÿ”—

Chainable

Each .map() step handles null transparently.

๐Ÿ“–

Linear flow

Read left-to-right instead of nested if-blocks.

๐Ÿ›ก๏ธ

NPE-proof

null is handled at each step โ€” no crash possible.

Old Approach

Nested Null Checks

Modern Approach

Optional Pipeline

JDK Support

Optional chaining

Available

Available since JDK 8+ (improved in 9+)

How it works

Optional.map() chains through nullable values, short-circuiting on the first null. orElse() provides the default. This eliminates pyramid-of-doom null checking.

Related Documentation

Proof