Scala I';我试图在参和者之间传递类的实例,但编译器拒绝了它

Scala I';我试图在参和者之间传递类的实例,但编译器拒绝了它,scala,akka,actor,Scala,Akka,Actor,Akka文档说任何对象都可以作为消息传递,但实际上它似乎不起作用。这是代码 此类用于接收具有id的乘客对象 class BagScanActor extends Actor {`enter code here` def receive = { case Passenger => println("hello back at you") case _ => println("huh?") } } 这是简单的乘客舱 class

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

此类用于接收具有id的乘客对象

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

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
    }
}

“notfound:value Passenger”这句话有一个错误,我似乎找不到任何说明如何传递类而不是case对象的文档。任何关于如何传递包含值的对象的帮助都将非常好!谢谢

如前所述,您正在与名为
Passenger
的对象进行模式匹配,该对象不存在,因此出现编译器错误

如果要与
乘客
的实例进行匹配,需要为其指定一个标识符:

case p: Passenger =>

yiu不能只是将一个类传递给actor——你必须实例化它(构造一个对象)bagActor!新乘客;如果你需要匹配一个类-
案例p:Passanger=>
@dk14,为什么你不能将一个类发送给演员<代码>bagActor!classOf[Passenger]它是表示类的对象(反射),而不是类本身