小编LeC*_*Che的帖子

Scala演员异常"对属于其他演员的频道作出反应"

给出以下代码:

class A extends Actor {
  def act() {
    loop {
      reactWithin(1000) {
        case _ => println("A Message")
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

class B extends A {
  val test = Actor.actor {
    loop {
      reactWithin(1000) {
        case "B" => println("B Message")
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

创建B的实例会val t = new B()引发以下异常:

scala.actors.Actor$$anon$1@452bb7e0: caught java.lang.AssertionError: assertion failed: react on channel belonging to other actor
java.lang.AssertionError: assertion failed: react on channel belonging to other actor
 at scala.actors.ReplyReactor$class.reactWithin(ReplyReactor.scala:123)
 at A.scala$actors$Actor$$super$reactWithin(Tester.scala:11)
 at …
Run Code Online (Sandbox Code Playgroud)

scala channel actor

7
推荐指数
1
解决办法
888
查看次数

标签 统计

actor ×1

channel ×1

scala ×1