Идиоматический способ превратить Твиттер Будущее [Ложь] в исключительное Будущее? - PullRequest
0 голосов
/ 21 января 2019

Я хочу преобразовать Twitter Future [Boolean], который является ложным, в исключительное будущее.

Один из способов сделать это - отфильтровать, а затем передать PartialFunction в rescue:

theFuture
  .filter(b => b) // if b is false, becomes exceptional
  .rescue {
     case Try.PredicateDoesNotObtain 
           => Future.exception(new MyPreferredExceptionType())
  }

Другим способом было бы flatMap:

theFuture
  .flatMap(b => if (b) Future.value(b) else Future.exception(new MyPreferredExceptionType())

Но оба способа кажутся неуклюжими и не идиоматическими.Предложения?

...