首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特征中的隐含ExecutionContext

特征中的隐含ExecutionContext
EN

Stack Overflow用户
提问于 2014-06-04 16:54:09
回答 1查看 2K关注 0票数 4

我希望将隐式ExecutionContext传递给部分实现的特征。在代码示例中:

代码语言:javascript
复制
import scala.concurrent.Future

trait Processor[T,R] {
  def process(op:T): Future[R] = {
    //Do something to get stuff from abstract methods
    Future {
      //Do something that returns type R
    }
  }
}

这将需要一个ExecutionContext,因此我将声明更改为:

代码语言:javascript
复制
import scala.concurrent.Future
import scala.concurrent.ExecutionContext

trait Processor[T,R] {
  def process(op:T)(implicit executor: ExecutionContext): Future[R] = {
    //Do something to get stuff from abstract methods
    Future {
      //Do something that returns type R
    }
  }
}

但是当我尝试像这样扩展特征时:

代码语言:javascript
复制
import scala.concurrent.ExecutionContext.Implicits.global

class StringProcessor extends Processor[String,String] {
  //Bla bla bla
}

编译器告诉我方法过程没有实现,我的类应该是抽象的。

我如何才能确保我的构造工作,而不必在特征的声明中放入implicit val xc:ExecutionContext

EN

回答 1

Stack Overflow用户

发布于 2014-06-04 20:18:33

下面的代码似乎没有任何问题,它与您的代码相似,但提供了完整的实现。不确定问题是什么。

代码语言:javascript
复制
import scala.concurrent.Future
import scala.concurrent.ExecutionContext

trait Processor[T,R] {
  def process(op:T)(implicit executor: ExecutionContext): Future[R] = {
    //Do something to get stuff from abstract methods
    Future {
      getR
    }
  }

  def getR:R
}

class StringProcessor extends Processor[String,String] {
  def getR = "foo"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24032991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档