我希望可以将一个隐式的ExecutionContext传递给部分实现的trait。
代码示例:
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,因此我已经更改了声明为:
这将要求一个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
}
编译器告诉我,我的类中的process方法未实现,因此该类应为抽象类。
如何确保我的构造函数能够正常工作,而无需在特质声明中添加implicit val xc:ExecutionContext?