java - 有 Akka parametric Creators 的例子吗?

标签 java java-8 akka

我有一些相似的 Actor ,想统一他们生成的方法。 我在 akka 文档中找到了这个例子,但不知道如何制作我的 Actor

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)

Caused by: java.lang.IllegalArgumentException: erased Creator types are unsupported, use 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);
}

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

关于java - 有 Akka parametric Creators 的例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31140048/

相关文章:

scala - 如何确保只有一个 Akka JAR 出现在类路径上?

java - 从C++到Java-什么是Gradle

java - Maven - 将代码发布到 GitHub 时出错(推送后挂起)

java - 可能是Java1.8流异常

java - 将列表中的列表提取为单个列表

java - 为什么 Path.relativize 在 Java 8 和 Java 11 上表现不同?

scala - 在 Scala 中使用 Future 和 Promise 取消

scala - Akka-http 流使用 Slick 3.0 Databasepublisher

java - 使用 Java 字符串格式生成不带前导零的可变大小数字

java - 在非字符串注释字段 spring 中使用 yml 文件中的值