The Optional object in Java (java.util.Optional
) is a container object which may or may not have a value. Designed specifically to handle the null
case in a safe and explicit way, the optionals help write more readable code.
Typical Usage
1) When returning an object that might be null
public Optional<Employee> findEmployeeByName(String name) {
Employee employee = repo.findEmployee(name);
return Optional.ofNullable(employee);
}
2) To fallback upon receiving null
-
Return a default object
Employee employee = findEmployeeByName("John") .orElse(new Employee("Unknown", 20));
-
Return after a pipeline of operators
Integer salary = findEmployeeByName("John") .map(Employee::getSalary) .orElse(30);
-
Run a callback if value exists
findEmployeeByName("John") .ifPresent(employee -> { kafkaTemplate.send("employee-key", employee, "employee-topic"); });
-
Return an exception
try { value = opDouble.orElseThrow(IOException::new); } catch (IOException e) { System.out.println("Exception " + e); }
By default returns
NoSuchElementException
, if no value exists within the Optional.
Top comments (0)