真正的艺术家绝不顾虑作品的前途。——罗曼·罗兰

今天发现一个问题,如果我们是动态构建状态机,在传入指定守卫为null时,代码不会报错,且事件不会过渡到下一个状态

解决方式:

1
2
3
4
5
6
7
builder.configureTransitions().withExternal()
.name(transition.getName())
.source(transition.getSourceState())
.event(transition.getEvent())
.target(transition.getTargetState())
.action(Opp.of(transition.getAction()).orElse(SerCons.nothing()::accept))
.guard(Opp.of(transition.getGuard()).orElseGet(() -> c -> true))

提供默认值

引入的是import org.dromara.streamquery.stream.core.lambda.function.SerCons;