transform(x -> x)
- хорошее решение, и оно звучит как эквивалент copy()
.
Единственное предостережение, о котором я могу подумать, это то, что возможно обновление двух Future
объектов.к гонке: возможно завершение оригинала Future
и отмену другого Future
, и в этом случае у вас есть «копия» с другим статусом.(Точно так же можно наблюдать, как один Future
завершен, в то время как другой еще не завершен.) Опять же, это звучит так же, как и для copy()
.Если это касается вас, вы можете создать ForwardingListenableFuture
, который обернет исходный Future
.