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"; }
}
Create a free account and build your private vault. Share publicly whenever you want.