DEV Community

Deepak Devanand
Deepak Devanand

Posted on

1 1

Java Frappe: Optional<T>

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);
   }
Enter fullscreen mode Exit fullscreen mode

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)

Great read:

Is it Time to go Back to the Monolith?

History repeats itself. Everything old is new again and I’ve been around long enough to see ideas discarded, rediscovered and return triumphantly to overtake the fad. In recent years SQL has made a tremendous comeback from the dead. We love relational databases all over again. I think the Monolith will have its space odyssey moment again. Microservices and serverless are trends pushed by the cloud vendors, designed to sell us more cloud computing resources.

Microservices make very little sense financially for most use cases. Yes, they can ramp down. But when they scale up, they pay the costs in dividends. The increased observability costs alone line the pockets of the “big cloud” vendors.

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay