有没有阿卡参数创建者的例子



我有一些类似的参与者,希望统一他们生成的方法。我在akka文档中找到了这个例子,但不知道如何制作我的演员

static class ParametricCreator<T extends MyActor> implements Creator<T> {
@Override public T create() {
  // ... fabricate actor here
}

}

然后我尝试为测试发送创建者作为参数

private static Creator<MyActor> myCreator = MyActor::new;
public static Props props() {
    return Props.create(myCreator);
}

但是抓住这个

java.lang.ExceptionInInitializerError
at core.AppContext.initActors(AppContext.java:28)
at Main.main(Main.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

由以下原因引起:java.lang.IollegalArgumentException:不支持已擦除的创建者类型,请使用Props.create(actorClass,Creator)代替

很抱歉我的问题和糟糕的语言,但如果没有帮助,我无法解决这个问题。

我遇到了同样的问题。很晚了,但可能会帮助其他人。解决方案出现错误消息:请改用Props.create(actorClass,creator)

因此:

private static Creator<MyActor> myCreator = MyActor::new;
public static Props props() {
    return Props.create(MyActor.class, myCreator);
}

您必须在创建者中指定演员的确切类型。

最新更新