将Future转换为类或Map

时间:2017-04-06 18:33:05

标签: scala future akka-http

我有一个 class ClassName(id:String, etc:String, long:Long)

一个从DB返回该对象的函数 Future[Option[ClassName]]

我希望将结果(Future [Option])转换为带有它的值的类,或者是Map [String,AnyRef]

有谁知道如何处理这种转变?我没有在互联网上找到任何答案

1 个答案:

答案 0 :(得分:-2)

我设法创建这个函数,它返回我未来的类。

它不是通用的,所以它不会很优雅,但它可以完成工作

<德尔>     def convertToClass(futureEntity:Future [Option [ClassName]]):ClassName = {         var newClass:ClassName = null         futureEntity onComplete {           案例成功(价值)=&gt;             值匹配{               case Some(s)=&gt; newClass = s               case None =&gt;空值             }           case Failure(e)=&gt; e.printStackTrace             空值         }         的NewClass       }

修改 那种方法不起作用。这个确实:

def convertToMyClass(futureEntity: Future[Option[ClassName]]): ClassName = {
    var myClass: ClassName = null
    Await.ready(futureEntity andThen {
      case Success(value) =>
        value match {
          case Some(s) => myClass = s
          case None => null
        }
      case Failure(e) => e.printStackTrace
        null
    }, Duration.Inf)
    myClass
  }