【发布时间】:2017-03-13 13:08:40
【问题描述】:
我正在尝试理解 AKKA fsm“matchEvent”:
public final <ET> FSMStateFunctionBuilder<S, D> matchEvent(Class<ET> eventType, TypedPredicate2<ET, D> predicate, Apply2<ET, D, State<S, D>> apply) {
return (new FSMStateFunctionBuilder()).event(eventType, predicate, apply);
}
查看http://doc.akka.io/japi/akka/2.3.4/index.html?akka/actor/AbstractFSM.html后 这是我发现的:
public <P> FSMStateFunctionBuilder<S,D> event(java.lang.Class<P> eventType,
FI.TypedPredicate2<P,D> predicate,
FI.Apply2<P,D,FSM.State<S,D>> apply)
添加匹配事件类型和谓词的 case 语句 火柴。参数: eventType - 谓词匹配的事件类型 - 将根据数据和事件评估的谓词 apply - 如果匹配,则应用于事件和状态数据的操作 返回:添加了 case 语句的构建器
谁能告诉我事件的匹配是如何实现的?
【问题讨论】:
-
我建议您看一下doc.akka.io/docs/akka/2.4/java/lambda-fsm.html 或doc.akka.io/docs/akka/2.4/java/fsm.html,这取决于您是否可以使用Java8。顺便说一句,akka 现在是 2.4,你为什么要检查 2.3 API?
-
我用的是JAVA 8..我用的是最新的api,没理由链接是2.3
-
那么你有一个很好的例子doc.akka.io/docs/akka/2.4/java/lambda-fsm.html#A_Simple_Example 这里你有一个很好的例子关于如何在Java8中实现Akka FSM