squirrel
squirrel copied to clipboard
中间数据(如订单数据)存放在哪里?
作者大大您好,看了一下您推荐的《squirrel-foundation状态机的使用细节》,其中有一段不太理解,如下图:
1.这一段中,把订单的数据如ID,存放在StateMachineContext中,但是我看了源码,好像这个只是存放stateMachine实例的吧?而且没有get()方法。所以我有点懵了,是我对此理解错了还是文章作者出错了呢?
2.@StateMachineParameters(.... contextType=Object.class)
订单数据应该放在contextType设定的类里吧?然后fire("EventToEvent", object); 来传输。
这个理解是对的吗?
这个你可以问下 @TimGuan
嗯,那个问题已经解决了,那位作者的意思应该是重新定义一个类,只是不小心和您源代码中的类重名,导致我理解错了(我猜的,联系不到作者..)。
额,然后又有一个问题....是Converters相关:
这是我的state类:
这是我的Conventers相关(enum转为code):
这是我的状态机相关:
最后报错为: java.lang.IllegalArgumentException: No enum constant org.squirrelframework.foundation.fsm.test.StateEnum.1
能帮我看一下这是为什么吗?是我哪里配错了吗?@hekailiang
@SuperNoobTao 自定义Converter必须在创建 StateMachineBuilder 之前进行注册
潜水好久。。。问题解决了吧。。。还有问题可以给我留言。。。
嗯,那个问题已经解决了,那位作者的意思应该是重新定义一个类,只是不小心和您源代码中的类重名,导致我理解错了(我猜的,联系不到作者..)。 额,然后又有一个问题....是Converters相关: 这是我的state类:
这是我的Conventers相关(enum转为code):
这是我的状态机相关:
最后报错为: java.lang.IllegalArgumentException: No enum constant org.squirrelframework.foundation.fsm.test.StateEnum.1
能帮我看一下这是为什么吗?是我哪里配错了吗?@hekailiang
1 2 3 4 对应改为A B C D