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
Optionalas class instance fields, method parameters, or collection wrapper items (List<Optional<T>>). Avoid calling.get()withoutisPresent()verification.
Key Takeaways
- Use
Optionalfor method return types. - Avoid using
Optionalfor class instance fields or method parameter parameters.
Knowledge Check
Why is opt.orElseGet(() -> defaultValue) preferred over opt.orElse(defaultValue)?