Java

Optional — Stop Returning Null

admin by @admin ADMIN
1d ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
`Optional<T>` makes "may be absent" part of the type signature so callers can't forget the null check. `map`, `orElse`, `ifPresent` chain naturally — no `if (x != null)` boilerplate.
Java
Raw
import java.util.*;
import java.util.stream.*;

class Demo {
    Map<Integer, String> db = Map.of(1, "Alice", 2, "Bob");

    Optional<String> findUser(int id) {
        return Optional.ofNullable(db.get(id));
    }

    void example() {
        // Default fallback
        String name = findUser(99).orElse("unknown");
        System.out.println(name);                        // unknown

        // Lazy default (only called on empty)
        String name2 = findUser(99).orElseGet(() -> expensive());

        // Transform if present
        Optional<Integer> nameLen = findUser(1).map(String::length);
        System.out.println(nameLen);                     // Optional[5]

        // Side effect if present
        findUser(1).ifPresent(n -> System.out.println("got " + n));

        // ifPresentOrElse — Java 9+
        findUser(99).ifPresentOrElse(
            n -> System.out.println("found " + n),
            () -> System.out.println("nothing")
        );

        // ❌ Don't use Optional as a field type or method parameter — only as a return value.
    }

    String expensive() { return "computed default"; }
}
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.