Q57: What is Optional<T> and what are its anti-patterns?

Optional<T> is a single-value container introduced in Java 8 to represent present or absent values explicitly without returning null.

  • Good Practices: Use as method return type to signal potential missing values explicitly. Use orElseGet() for lazy default generation.
  • Anti-Patterns: Avoid using Optional as class instance fields, method parameters, or collection wrapper items (List<Optional<T>>). Avoid calling .get() without isPresent() verification.
Key Takeaways
  • Use Optional for method return types.
  • Avoid using Optional for class instance fields or method parameter parameters.
Knowledge Check

Why is opt.orElseGet(() -> defaultValue) preferred over opt.orElse(defaultValue)?