@Nullable
    public T orElseGet(@Nonnull Supplier<? extends T> other) {
        return isPresent() ? this.value : other.get();
    }
Return the value if present, otherwise invoke {@code other} and return
the result of that invocation.

@param other a {@code Supplier} whose result is returned if no value
is present
@return the value if present otherwise the result of {@code other.get()}
@throws NullPointerException if value is not present and {@code other} is
null
helper/src/main/java/me/lucko/helper/utils/NullableOptional.java