Я не уверен, почему ниже не печатается «Это А».
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
sealed trait Foo
case object A extends Foo
case object B extends Foo
val a = Future.successful(A)
a.mapTo[Foo].map {
case A => println("it is an A")
case B => println("it is a B")
}.value.get
Это приводит к следующему:
java.util.NoSuchElementException: None.get
at scala.None$.get(Option.scala:347)
at scala.None$.get(Option.scala:345)
... 31 elided
Я думал, что могу привести A
к Foo
с mapTo, а затем выполнить анализ случая над ним. Это упрощенная версия проблемы, и программа, над которой я работаю, использует Akka.