Scala演员异常“对属于其他演员的频道作出反应”
发布时间:2020-12-16 19:16:48 所属栏目:安全 来源:网络整理
导读:给出以下代码: class A extends Actor { def act() { loop { reactWithin(1000) { case _ = println("A Message") } } }} 和 class B extends A { val test = Actor.actor { loop { reactWithin(1000) { case "B" = println("B Message") } } }} 创建B val
给出以下代码:
class A extends Actor { def act() { loop { reactWithin(1000) { case _ => println("A Message") } } } } 和 class B extends A { val test = Actor.actor { loop { reactWithin(1000) { case "B" => println("B Message") } } } } 创建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 scala.actors.Actor$class.reactWithin(Actor.scala:613) at A.reactWithin(Tester.scala:11) at B$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(Tester.scala:24) at B$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(Tester.scala:24) at scala.actors.Reactor$class.seq(Reactor.scala:280) at A.seq(Tester.scala:11) at scala.actors.Reactor$$anon$3.andThen(Reactor.scala:258) at scala.actors.Combinators$class.loop(Combinators.scala:26) at A.loop(Tester.scala:11) at B$$anonfun$1.apply$mcV$sp(Tester.scala:23) at scala.actors.Actor$$anon$1.act(Actor.scala:135) at scala.actors.Reactor$$anonfun$dostart$1.apply(Reactor.scala:222) at scala.actors.Reactor$$anonfun$dostart$1.apply(Reactor.scala:222) at scala.actors.ReactorTask.run(ReactorTask.scala:36) at scala.concurrent.forkjoin.ForkJoinPool$AdaptedRunnable.exec(ForkJoinPool.java:611) at scala.concurrent.forkjoin.ForkJoinTask.quietlyExec(ForkJoinTask.java:422) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:340) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) 有人可以告诉我为什么会这样吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |