Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用道具初始化演员_Java_Akka_Actor - Fatal编程技术网

Java 用道具初始化演员

Java 用道具初始化演员,java,akka,actor,Java,Akka,Actor,我有以下FSM public class ActorOnFsm { public static enum State { FirstState, SecondState, ThirdState, FourthState } public static final class ServiceData { } public class ActorFSM extends AbstractFSM<State, Serv

我有以下FSM

public class ActorOnFsm {
    public static enum State {
    FirstState,
    SecondState,
    ThirdState,
    FourthState
    }

    public static final class ServiceData {

    }


    public class ActorFSM extends AbstractFSM<State, ServiceData> { 
    {
        startWith(FirstState, new ServiceData());
        when(FirstState,
            matchEvent(SomeMessage.class,
                ServiceData.class,
                (powerOn, noData) ->
            goTo(SecondState)
            .replying(SecondState))
            );


        when(SecondState,
            matchEvent(SomeOtherMessage.class,
                ServiceData.class,
                (powerOn, noData) ->
            goTo(ThirdState)
            .replying(ThirdState))
            );

        when(FirstState,
            matchEvent(soemErrorMessage.class,
                ServiceData.class,
                (powerOn, noData) ->
            goTo(FourthState)
            .replying(FourthState))
            );

        initialize();
    }



    }
}
初始化此参与者的正确方法是什么

我还尝试更改类以扩展AbstractLogging,但结果相同

我还尝试创建一个空构造函数,但结果相同

尝试在道具中发送状态和数据,但仍然收到相同的错误

    final Props props = Props.create(DeployerOnFsm.class, state, data);

您应该传递给
Props
工厂的类是
ActorFSM
,它在
ActorOnFsm
中定义:

final Props props = Props.create(ActorOnFsm.ActorFSM.class);
但是,将内部类传递给
Props
工厂可能会出现问题。将
ActorFSM
作为顶级类更为传统,在这种情况下,对
Props
的调用将更改为:

final Props props = Props.create(ActorFSM.class);
此外,您的状态转换中似乎有一个输入错误:

when(FirstState,
    matchEvent(soemErrorMessage.class,
              // ^

想必,您打算编写
SomeErrorMessage.class
而不是
soemErrorMessage.class

非常感谢!!!但我仍然有另一个问题,它在“类中找不到匹配的构造函数”时出错。它需要显式构造函数吗?事实证明,将类移到嵌套类之外修复了它
when(FirstState,
    matchEvent(soemErrorMessage.class,
              // ^