我想用一种方法返回CompletableFuture
,只有在用结果值调用该对象的第二种方法时,该方法才能成功,类似
public class Foo {
private CompletableFuture<String> f;
public CompletableFuture<String> method1() {
f = CompletableFuture.waitForever???
return f;
}
public void method2(String s) {
if (f != null) {
f.complete(s);
}
}
}
这可能吗?我是否忽略了一种不太疯狂的方式?
答案 0 :(得分:0)
CompletableFuture#get()
将永远等待直到完成
来自文档
等待此将来完成,然后返回其 结果。
这就是为什么有get(long timeout, TimeUnit unit)
允许超时的原因
如果有必要,最多等待给定时间以等待此未来 完成,然后返回其结果(如果有)。