scala – 特征中的隐式ExecutionContext
发布时间:2020-12-16 08:43:47 所属栏目:安全 来源:网络整理
导读:我想将一个隐式ExecutionContext传递给部分实现的特征. 在代码示例中: import scala.concurrent.Futuretrait Processor[T,R] { def process(op:T): Future[R] = { //Do something to get stuff from abstract methods Future { //Do something that returns
我想将一个隐式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 } 编译器告诉我方法过程没有实现,我的类应该是抽象的. 如何确保我的构造工作而不必在特征的声明中放入隐式的val xc: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 { getR } } def getR:R } class StringProcessor extends Processor[String,String] { def getR = "foo" } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读