Akka/Java getContext()。是否随参数变为?

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 { /

在Akka/Scala中,可以将参数传递给自定义接收函数,因此可以通过参数传递整个参与者状态,而无需使用可变变量

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))