在 Akka/Scala 中,可以将参数传递给自定义接收函数,因此可以通过 params 传递整个 actor 状态,而无需使用可变变量。
context.become(myCustomReceive(param1, param2))
但在 Java Api 中,您只能传递将接收到的消息作为唯一参数的过程
getContext().become( new Procedure<Object> {
public void apply(Object param) throws Exception
{
// ...
}
}
有没有一种干净的方法可以在 Java 中完成同样的操作?
我会这样做
class ProcedureWithParams<T> extends Procedure<T> {
Object param1;
Object param2;
ProcedureWithParams(Object param1, Object param2) {
this.param1 = param1;
this.param2 = param2;
}
public void apply(Object param) throws Exception {
//access para1 and param2 here
}
}
getContext().become( new ProcedureWithParams(param1, param2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)