@Test void orElseGet() { assertEquals(7, Result.error(-1).orElseGet(err -> 7)); }
public V orElseGet(Function<E, V> orElse) { return isOk() ? value : orElse.apply(error); }
Result { public V orElseGet(Function<E, V> orElse) { return isOk() ? value : orElse.apply(error); } }
Result { public V orElseGet(Function<E, V> orElse) { return isOk() ? value : orElse.apply(error); } private  Result(@Nullable V value, @Nullable E error); }
Result { public V orElseGet(Function<E, V> orElse) { return isOk() ? value : orElse.apply(error); } private  Result(@Nullable V value, @Nullable E error); boolean isOk(); boolean isErr(); V get(); E getError(); Result<R, E> map(Function<V, R> function); Result<R, E> flatMap(Function<V, Result<R, E>> function); Result<V, E> orElse(Function<E, Result<V, E>> orElse); V orElseGet(Function<E, V> orElse); V orElseThrow(ThrowingFunction<E, T, T> consumer); Result<V, E> peek(Consumer<V> consumer); Result<V, E> onError(Consumer<E> consumer); static Result<V, E> ok(V value); static Result<V, E> error(E err); }
Result { public V orElseGet(Function<E, V> orElse) { return isOk() ? value : orElse.apply(error); } private  Result(@Nullable V value, @Nullable E error); boolean isOk(); boolean isErr(); V get(); E getError(); Result<R, E> map(Function<V, R> function); Result<R, E> flatMap(Function<V, Result<R, E>> function); Result<V, E> orElse(Function<E, Result<V, E>> orElse); V orElseGet(Function<E, V> orElse); V orElseThrow(ThrowingFunction<E, T, T> consumer); Result<V, E> peek(Consumer<V> consumer); Result<V, E> onError(Consumer<E> consumer); static Result<V, E> ok(V value); static Result<V, E> error(E err);  }