code: public V getValueOrElseGet(Supplier<V> otherSupplier) {
  
          LettuceAssert.notNull(otherSupplier, "Supplier must not be null");
  
          if (hasValue()) {
              return value;
          }
          return otherSupplier.get();
      }
docs: Return the value if present, otherwise invoke {@code other} and return the result of that invocation.
  
  @param otherSupplier a {@code Supplier} whose result is returned if no value is present. Must not be {@literal null}.
  @return the value if present otherwise the result of {@code other.get()}
  @throws NullPointerException if value is not present and {@code other} is null