我试图在actor之间传递类的实例,但编译器拒绝它

时间:2014-12-08 05:16:02

标签: scala akka actor

Akka文档说任何对象都可以作为消息传递,但实际上它似乎不起作用。这是代码。

此课程旨在接收id为

的乘客对象
class BagScanActor extends Actor {`enter code here`
    def receive = {
        case Passenger => println("hello back at you")
        case _       => println("huh?")
    }
}

这是简单的Passenger类

class Passenger(id: Int) {

}

这是主要对象

object Tsa {
    def main(args: Array[String]) {
        val numLines: Int = 2;

        val system = ActorSystem("ScreenerSystem")
        val bagActor = system.actorOf(Props(new BagScanActor(numLines)), name = "bagscanactor")
        bagActor ! Passenger
    }
}

有一个错误说“找不到:值乘客”,我似乎找不到任何文档来说明如何传递一个类而不是一个案例对象。任何有关如何传递包含值的对象的帮助都会很精彩!谢谢!

1 个答案:

答案 0 :(得分:2)

如上所述,您对名为Passenger的对象进行模式匹配,这对象不存在,因此编译错误。

如果您要与Passenger实例进行匹配,则需要为其指定标识符:

case p: Passenger =>