首页 > 解决方案 > Spring Statemachine中如何检查事件是否触发了状态机?

问题描述

让我将我的问题总结如下,

我知道stateMachine.sendEvent(Event e)返回一个布尔值表示事件是否触发转换,但它也会触发转换 if true

但是,我只想检查状态机是否可以被该事件触发,而不是事后触发转换。有没有办法做到这一点?

标签: springspring-bootspring-statemachine

解决方案


没有内置方法可以做到这一点,但是一旦您检索到 StateMachine 的实例,您就可以实现一个方法来遍历转换以查找当前状态并检查该状态的可用转换。每个 AbstractTransition 包含一个源和目标状态

machine.getTransitions()

调试示例


推荐阅读