类似于CompletableFuture.copy()
。不确定是否对其他ListenableFuture
有意义,但至少对SettableFuture
而言,我不希望未经授权的客户来设定未来。
我正在考虑使用Futures.transform()
,它似乎可以创建链接的ListenableFuture
。
答案 0 :(得分:1)
transform(x -> x)
是一个很好的解决方案-听起来与copy()
等效。
我唯一想到的警告是,有可能对两个Future
对象进行更新竞争:原始Future
可能会完成而另一个Future
可能会完成已取消,在这种情况下,您拥有状态不同的“副本”。 (类似地,有可能观察到一个Future
已完成而另一个仍在等待中。)同样,这听起来像copy()
也是这样。如果您有问题,可以创建一个ForwardingListenableFuture
来包装原始的Future
。