次のように定義されたアクターがあります。
class nodeActor(ID: String) extends Actor
これには、開始前にアクターをセットアップするために使用されるメソッドが含まれています。
def addRef(actor:ActorRef)
このアクターを次のようにインスタンス化します。
val node1 = system.actorOf(Props(new nodeActor("node1")), name="node1")
ActorRef を返します。サブタイプのメンバーであるため、コンパイラは ActorRef で「addRef」を呼び出すことを許可しません。したがって、次を使用してノードをキャストします。
node1.asInstanceOf[nodeActor].addRef(link1)
これにより、コンパイラは満足します。次に、実行時に取得します
java.lang.ClassCastException: akka.actor.LocalActorRef cannot be cast to ActorStressTest.nodeActor
それはサブタイプであり、キャストできるはずなので、私には意味がないようです。
アイデア?