gsi*_*ard 2 java scala actor akka
Akka Scala actor必须扩展akka.actor.Actor
Akka Java actor必须扩展akka.actor.UntypedActor
因此,在使用非默认构造函数定义Scala actor并从Java代码创建它时,我遇到了这个问题:
ActorRef myActor = system.actorOf(new Props(new UntypedActorFactory() {
public UntypedActor create() {
return new MyActor("...");
}
}), "myactor");
Run Code Online (Sandbox Code Playgroud)
当然,UntypedActorFactory期望创建一个UntypedActor类型的对象,但我的actor是Actor类型.
解决方法是什么?
编辑:
按照Viktor的指示使用akka.japi.Creator,这有效:
Props props1 = new Props();
Props props2 = props1.withCreator(new akka.japi.Creator() {
public Actor create() {
return new MyActor("...");
}
});
ActorRef actorRef = Main.appClient().actorOf(props2, "myactor");
Run Code Online (Sandbox Code Playgroud)
在这种情况下,传入akka.japi.Creator而不是UntypedActorFactory.
此外,至少在2.0.1和转发中它不需要UntypedActor:
trait UntypedActorFactory extends Creator[Actor] with Serializable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1312 次 |
| 最近记录: |