2014-01-30 1 views
2

В Akka/Scala можно передавать параметры пользовательской функции приема, поэтому можно передать все состояние актора через параметры без использования изменяемых переменных.Akka/Java getContext(). Стать с параметром?

context.become(myCustomReceive(param1, param2)) 

Но в Java Api вы можете пройти только процедуру, которая получает полученное сообщение, как только парам

getContext().become(new Procedure<Object> { 
    public void apply(Object param) throws Exception 
    { 
    // ... 
    } 
} 

Есть чистый способ сделать то же трюк в Java?

ответ

1

Я хотел бы сделать это так

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)) 
Смежные вопросы