首页 > 解决方案 > 覆盖来自 Future 的 val 特征

问题描述

我想覆盖val tfrom getValue which 返回一个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"))
  }

}

标签: scala

解决方案


可以做的那种接近于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
  }

推荐阅读