我有一个接受隐式参数的函数.如何使用某个类的实例的隐式参数隐式传递参数?



这是函数:

def execute[T, U, F[_]](t: T)(implicit
executor: Executor[F],
functor: Functor[F],
handler: Handler[T, U],
manifest: Manifest[U]): F[Response[U]] = {(do something)}

我有一个类ElasticSearchRepositoryWrapper它继承自某个地方(我找不到从哪里(handler变量。 我有一个类的实例repo = ElasticSearchRepositoryWrapper(client, config, configName)
我想这样做:

class SomeService(val config: Config,
val configName: String = "products",
val client: ElasticClient)
(implicit val ec: ExecutionContext)
{
repo = ElasticSearchRepositoryWrapper(client, config, configName)
repo.client.execute {
repo.delete(something)
}
}

但它说,No implicits found for parameter handler: Handler[..., ...]execute函数
那么,我怎样才能将handlerrepo传递到它呢?
注意:如果类SomeService继承自ElasticSearchRepositoryWrapper,它会找到它。

我不确定execute的第一个参数是什么。看起来它想要一些t,但你正在通过一个块(不是说它一定是错误的,但有点奇怪(。但是,假设这确实是您想要的,并且repo.handler可以访问,您可以像这样传递它:

repo.client.execute(repo.delete(something))(ec, implicitly, repo.handler, implicitly)

相关内容

  • 没有找到相关文章

最新更新