0

每个对话(每个交易查询)我都有一个状态机实例。交易查询会在接收事件时通过不同的状态移动,并且某些统计数据可能无效。

示例->状态:a、b、c、d、e 转换/事件:E1、E2、E3、E4、E5 状态机类似于:a--E1-->b---E2-->c --E5--> e

我在 builder 中注册了 statemachine listener:StateMachine machine = builder.build(); machine.addStateListener(new StateMachineListener());

此 StateMachineListener 仅抛出 RuntimeException 以防万一事件未被接受,但由于 CompositeStateMachineListener.eventNotAccepted 处的代码未将 execption 传递给调用者而是打印在日志中。

我的问题是:如果事件不被接受,状态机如何通知调用者?

4

1 回答 1

0

这不起作用,因为StateMachineListener它只是一个界面。有一个StateMachineListenerAdapter实现完整的存根方法,然后用户可以一个接一个地覆盖。

于 2017-08-18T06:09:00.440 回答