title: What should be the return value for empty `Optional` type?
body: <p>I have a chain of methods with one method having <code>Optional</code> return type as below</p>
  
  <pre><code>public Optional&lt;Employee&gt; find(long id) {
  
     for (Employee employee : this.employees) {
        if (employee.getId() == id) {
           return Optional.of(employee);
        }
     }
     return Optional.empty();
  }
  
  public Employee findlById(long id) {
  
     return find(id);
  } 
  </code></pre>
  
  <p>Here the second method <code>findById</code> will have a compilation error as its own return type and the return type from <code>find</code> method are different.</p>
  
  <p>Now if I check for the value and find it, I can return that object. But what should I return if <code>Optional</code> object is empty?</p>
  
  <pre><code>public Employee findlById(long id) {
  
     Optional&lt;Employee&gt; employee = find(id);
     if (employee.isPresent()) {
        return employee.get();
     }
     return // what??;
  }
  </code></pre>
  
  <p>From the resources on the internet that I have read, you should never return <code>null</code> for an <code>Optional</code> object. So I am confused if not <code>null</code> than <code>what</code>?</p>