我是Akka框架的新手,所以仍然试图解决问题.实际上,我正在使用TestFSMRef类编写一些测试来测试我的有限状态机actor,称为'UptimeMonitorActor'.以下是代码:
@Test
public void testUptimeMonitorActorInInitializingBothPendingState() {
String systemSMCId = "systemSMC";
String systemStateModeTopic = "sysStateMode";
String dataStorageId = "dataStorage";
String dataSetId = "1";
Props props = Props.create(UptimeMonitorActor.class, systemSMCId, systemStateModeTopic, dataStorageId, dataSetId);
TestFSMRef fsm = new TestFSMRef<UptimeMonitorState, UptimeMonitorContext, UptimeMonitorActor>(system, props, some_supervisor, "FSM", null);
fsm.start();
log.info(fsm.stateName().toString());
}
Run Code Online (Sandbox Code Playgroud)
我得到了fsm.stateName().toString()的NullPointerException,因为我不知道我要传递给'ev'是什么,这是构造函数中的最后一个参数.参数的类型是:
private final Predef..less.colon.less<T, FSM<S, D>> ev;
Run Code Online (Sandbox Code Playgroud)
我认为这是某种评价.在这种情况下,我应该创建什么来传递'ev'?
谢谢.
我有以下接口和类:
public interface Rule<T> {
Predicate<T> evaluate();
}
public interface Criteria<T> {
Predicate<T> evaluate();
}
public abstract class AbstractRule<T> implements Rule<T> {
...
Set<Criteria<T>> criteria;
...
@Override
@Nullable
public Predicate<T> evaluate() {
return criteria.stream().reduce((c1, c2) -> c1.evaluate().and(c2.evaluvate()))
.orElse(null);
}
}
Run Code Online (Sandbox Code Playgroud)
AbstractRule类包含一组Criteria.我想通过评估每个标准来对规则进行评估.我在标题中提到的c1.evaluate().和(c2.evaluate())上遇到了编译错误.
我该如何解决这个问题?
谢谢.