覆盖Future中的特征值

时间:2018-12-27 07:57:52

标签: scala

我想从val t覆盖getValue,返回一个Future

trait demo{
  val t :String
}

class Test1 extends demo{

  override val t = "abc"
}

class Test2 extends demo{

  override val t = ""

  private def getValue ={
    Future(Option("abc"))
  }

}

1 个答案:

答案 0 :(得分:0)

可以要做的就是接近map到扩展demo的匿名类的未来:

val aDemo: Future[demo] = Future("abc").map { value => 
  new demo {
    override val t = value
  }
}

当然,您也可以在理解内完成此操作,例如:

for (value <- Future("abc")) yield
  new demo {
    override val t = value
  }