有没有办法在scala cookbook actor通信示例中避免使用无类型的ActorRef?

前端之家收集整理的这篇文章主要介绍了有没有办法在scala cookbook actor通信示例中避免使用无类型的ActorRef?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在斯卡拉食谱:13.3.如何在演员之间进行沟通我看到了这一点

class Ping(pong: ActorRef) extends Actor { // OMG - ActorRef - no type,help!
  var count = 0
  def incrementAndPrint { count += 1; println("ping") }
  def receive = {
    case StartMessage =>
      incrementAndPrint

我在我自己的代码中也有一些地方,我有这个ActorRef我不喜欢它,因为我喜欢类型安全.在上面的乒乓球例子中有没有办法避免这种情况?

旁注:据我所知,我可以使用“actorFor”进行命名,但作为DI怪胎,我宁愿在构造函数/参数中传递它.

解决方法

一些东西正在为Akka 3.0工作,例如,请参阅此预告片: https://mobile.twitter.com/RayRoestenburg/status/510511346040197120

现在使用自定义问题(问号)存在类型安全模式.这是一个关于它的博客
http://www.warski.org/blog/2013/05/typed-ask-for-akka/

虽然这有点笨重但可能不值得麻烦.

另一种方法是创建类型化API并将actor包装在其中.

猜你在找的Scala相关文章