Java 完成可完成的未来<;T>;在添加回调之前

Java 完成可完成的未来<;T>;在添加回调之前,java,java-8,Java,Java 8,是否有可能在为新的CompletableFuture对象调用然后Apply/然后Accept方法时,future的执行已经完成,并且通过上述方法设置处理程序不会产生任何效果? 我考虑的不仅仅是这两个方法,而是接受CompletableFuture API处理程序的全部50个方法 CompletableFuture<String> f = CompletableFuture.supplyAsync(() -> toString()); f.thenApply(s -> f

是否有可能在为新的CompletableFuture对象调用
然后Apply
/
然后Accept
方法时,future的执行已经完成,并且通过上述方法设置处理程序不会产生任何效果? 我考虑的不仅仅是这两个方法,而是接受CompletableFuture API处理程序的全部50个方法

CompletableFuture<String> f = CompletableFuture.supplyAsync(() -> toString());

f.thenApply(s -> f); // will be called if "f" completes before this line is invoked?
CompletableFuture f=CompletableFuture.supplyAsync(()->toString());
f、 然后应用(s->f);//如果在调用此行之前“f”已完成,是否将调用?


如果承诺已经解决,您将来添加的任何回调都将立即执行。

在两者之间放置一个
线程。睡眠
,并将回调中的线程记录到
中,然后应用
。您说的“不会有任何效果”是什么意思?当然,它们仍然有影响,只是立即产生,而不是以后。