似乎忽略了添加到选择伪状态的操作。这样做:
Builder builder = StateMachineBuilder.builder();
StateConfigurer states = builder.configureStates().withStates();
StateMachineTransitionConfigurer transitions = builder.configureTransitions();
StateConfigurer statesConfig = states.initial(INITIAL).states(EnumSet.allOf(StateType.class));
statesConfig.choice(StateType.CHOICE_STATE);
transitions.withChoice().source(StateType.CHOICE_STATE). //
first(StateType.S1, someGuard). //
last(StateType.S2);
states.state(StateType.CHOICE_STATE, someAction, null);
在输入CHOICE_STATE时,someAction中的结果从未执行。
框架根本不允许向CHOICE_STATE之外的转换添加操作(例如,上面的S1或S2)。
为了解决这个问题,我们实施了一个在CHOICE_STATE之前的状态。然后,我们可以像往常一样自由地向此状态添加操作。我只是想知道这种限制的原因是什么,或者是否有某种方法可以对我可能错过的伪状态采取行动。