【发布时间】:2020-05-18 23:19:24
【问题描述】:
我需要在 java 代码中调用 scala API。 Scala API 看起来像:
def get(id: String): Future[Try[Option[Map[String, Any]]]]
在java代码中,如果一切顺利,如何正确处理Future[Try[Option]]并获取Map?如果有异常,或者Future失败,则重新抛出RuntimeException。
【问题讨论】:
-
Future[Try[_]]很少有意义 -
您可以使用github.com/scala/scala-java8-compat 将scala期货转换为Java期货,
-
@cchantep 如果您想调用一个异步返回
Try的函数并跟踪Future是失败还是成功,这很有意义。 -
我几乎没有。堆叠此类验证类型只会导致 API 过于复杂。只需将
Try转换为Future和flatMap