使用stateless4j,我尝试执行一项操作来响应参数处于一种特定状态的事件。处理事件后我不想更改状态。
由于 stateless4j 不支持对事件执行操作(尽管我看到有一个待处理的补丁),所以我错误地使用了 PermitDynamic() 并使用选择器来执行我的操作。然后我在选择器中返回相同的状态。因此,在下面的代码中 action_activated_serviceRegistered
返回 FsmState.ACTIVATED
。
activationFsmConfig
.configure(FsmState.ACTIVATED)
.onEntry(fsmFunctions::action_activated_entry)
.onExit(fsmFunctions::action_activated_exit)
.permitDynamic(new TriggerWithParameters1<>(Trigger.SERVICE_REGISTERED, ServiceReference.class), fsmFunctions::action_activated_serviceRegistered);
我遇到的问题是,即使我没有更改状态,我的状态的退出和进入操作也会触发。
有更好的方法吗?
最佳答案
也许你可以在.ignoreIf(Trigger,guard)的保护条件下执行你的操作。
关于java - 我可以在不更改 stateless4j 中的状态的情况下执行操作来响应事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44205819/