CompletableFuture (original) (raw)

Doug Lea dl at cs.oswego.edu
Thu Nov 29 07:19:51 PST 2012


On 11/29/12 09:53, Remi Forax wrote:

again Future<? extends U>.

Thanks.

I think that CompletableFuture<?> is better as return type than CompletableFuture otherwise users may want to declare a local variable Void.

We end up using explicit Void params in FJ stuff a lot and people seem OK with it, so we might as well make these use the same conventions unless anyone can think of a reason otherwise.

/** * Creates and returns a CompletableFuture that is completed with * the result of the given function of either this or the other * given CompletableFuture's results if/when either complete * normally. * * @return the new CompletableFuture */ public CompletableFuture or(CompletableFuture<? extends T> x, BiFunction<? super T,? super T, ?_ _extends U> fn); Thinking a little more about this one, fn should be a Function not a BiFunction given that only one of the two completables needs to complete.

Yes, thanks. (I fixed this before but then overwrote with old version; oops.)

/** * Returns the value if completed, else the given valueIfAbsent. */ public T getNow(T valueIfAbsent);

still think it should use a supplier as parameter and not the value.

The motivating use case is to allow simplification of polling-like constructions where you'd otherwise need to first check isDone, and then get(), but could replace with: while(t.getNow(NOTREADY) == NOTREADY) { doSomethingElse(); } in which case trapping into a function is not at all helpful. And I can't think of other cases not involving plain get() where this method is of much use.

-Doug



More information about the lambda-libs-spec-observers mailing list