首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >消费类隐含的消费

消费类隐含的消费
EN

Stack Overflow用户
提问于 2014-09-02 00:45:40
回答 1查看 37关注 0票数 2

我在寻找包含类的最佳语法,以获取它们包含的类所公开的隐式?

在我的场景中,有两个抽象的依赖项用于测试:创建应用程序的actorsystem,以及碰巧需要actorsystem的webclient:

代码语言:javascript
复制
trait Core {
  implicit def system: ActorSystem
}

trait WebClient {
  implicit def system: ActorSystem
}

trait Api extends WebClient {
  ...
}

trait Server extends Core {
  def api: Api
  val service = system.actorOf(Props(new Service(api)))
}

现在,我创建了一个新的应用程序,它提供了actorsystem和api,但是Api需要一个隐式的actorsystem,而我发现的唯一方法是手动提供这样的应用程序:

代码语言:javascript
复制
object ServerApp extends App with Core {

  implicit val system = ActorSystem("foo")

  val api = new Api {
    override implicit def system = implicitly[ActorSystem]
  }

}

是否有更好的语法让WebClient从Core中提取隐式内容?我不能让它扩展Core,因为它包含在Core实现中,并且需要作为包含在其中的其他东西的依赖项。但是override implict def system = implicitly[ActorSystem]似乎在一些应该是,呃,隐含的事情上受到了很大的阻碍。

EN

回答 1

Stack Overflow用户

发布于 2014-09-02 02:56:28

您正在隐藏隐式值,因为它们具有相同的名称。

你可能会考虑

代码语言:javascript
复制
class Api()(implicit val system: ActorSystem)

代码语言:javascript
复制
val api = new Api
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25614398

复制
相关文章

相似问题

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