【发布时间】:2014-06-04 20:18:32
【问题描述】:
我希望将隐式 ExecutionContext 传递给部分实现的特征。 在代码示例中:
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,所以我将声明更改为:
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
}
}
}
但是当我尝试像这样扩展特征时:
import scala.concurrent.ExecutionContext.Implicits.global
class StringProcessor extends Processor[String,String] {
//Bla bla bla
}
编译器告诉我方法过程没有实现,我的类应该是抽象的。
如何确保我的构造可以正常工作,而不必在 trait 声明中添加 implicit val xc:ExecutionContext?
【问题讨论】:
标签: scala concurrency