我想写一个函数,它将在未来处理异常并返回新的未来,但我遇到了麻烦,不能使作为签名要求的错误消息斯卡拉类型不匹配:default.type(与底层类型A1 => B1)
scala> def composeHandlingFuture[T](fut: Future[T], default: T): Future[T] =
| fut recover { case e: Exception => default }
<console>:19: error: type mismatch;
found : default.type (with underlying type A1 => B1)
required: T
fut recover { case e: Exception => default }
^
意识不default.type
等于T
?它与type A1 => B1
有什么关系?
任何帮助表示赞赏。
P.S.我使用Scala的2.10.1
我不能解释错误消息,但删除显式返回类型可以让你定义函数没有它抱怨 – theon
是的,但返回类型变成scala.concurrent.Future [Any],这不是我想要的 – Zotov
啊,是的,刚才也注意到了。 IntelliJ说谎并且说返回类型是'Future [T]' – theon