AKKA接收方法报告错误

时间:2013-10-02 00:43:39

标签: eclipse scala akka

我正在使用scala 2.10和Akka 2.2.1在ubuntu 12.04下进行eclipse。

abstract class Node extends Actor {
  var n : Array[Node] // def n
  //..... I do not def receive here
}

class FNode extends Node {
  def receive = {
    case message => for(i <- 0 until n.size)
      n(i) ! message  // n is array. send message to all elements in n
      // ....
  }
}

现在,eclipse总是报告

value ! is not a member of Node.

我不知道如何修复。我浪费了3个多小时。我做了我能做的事,但我仍然无法解决。 谢谢!

2 个答案:

答案 0 :(得分:4)

您无法向Actor发送消息,只能向ActorRef发送消息。将n更改为Array[ActorRef],它应该有效。

顺便说一句,您可以更轻松地迭代集合和数组,例如。

n foreach (ref => ref ! message)

答案 1 :(得分:1)

我相信问题就在于此!是为ActorRef类型定义的,而不是Node类型扩展的Actor类型。