Akka/Java getContext()。是否随参数变为?
在Akka/Scala中,可以将参数传递给自定义接收函数,因此可以通过参数传递整个参与者状态,而无需使用可变变量Akka/Java getContext()。是否随参数变为?,java,scala,akka,Java,Scala,Akka,在Akka/Scala中,可以将参数传递给自定义接收函数,因此可以通过参数传递整个参与者状态,而无需使用可变变量 context.become(myCustomReceive(param1, param2)) 但在JavaAPI中,您只能传递将接收到的消息作为唯一参数的过程 getContext().become( new Procedure<Object> { public void apply(Object param) throws Exception { /
context.become(myCustomReceive(param1, param2))
但在JavaAPI中,您只能传递将接收到的消息作为唯一参数的过程
getContext().become( new Procedure<Object> {
public void apply(Object param) throws Exception
{
// ...
}
}
getContext().been(新过程{
public void apply(对象参数)引发异常
{
// ...
}
}
有没有一种干净的方法可以在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))
类ProcedureWithParams扩展过程{
对象参数1;
对象参数2;
ProcedureWithParams(对象参数1,对象参数2){
this.param1=param1;
this.param2=param2;
}
public void apply(对象参数)引发异常{
//在此访问para1和param2
}
}
getContext().Been(新过程withParams(param1,param2))