Как сделать защитную копию SettableFuture?Или вообще ListenableFuture? - PullRequest
0 голосов
/ 17 ноября 2018

Как CompletableFuture.copy(). Не уверен, имеет ли это смысл для других ListenableFuture с, но по крайней мере для SettableFuture, я не хочу, чтобы неавторизованный клиент установил будущее.

Я думаю об использовании Futures.transform(), которое, кажется, создает цепочку ListenableFuture.

1 Ответ

0 голосов
/ 03 января 2019

transform(x -> x) - хорошее решение, и оно звучит как эквивалент copy().

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...