В моем актере я должен создать класс, который отправит сообщение другому актеру. Другой актер должен ответить обратно актеру A
class A extends Actor {
val b = new B
b.start
val i = new DefaultHandler() {
override def fun(a: String) = {
b ! payload
}
}
someotherclass.registerHandler(i)
def act = {
loop {
react {
case reply => //do something
}
class B extends Actor {
def act = {
loop {
react {
case msg => sender ! reply
}
}
Проблема теперь в том, что при отправке из внутреннего класса я больше не в самом акторе, и в результате актер B не получает правильную ссылку на актера B. Один из способов исправить это - передать ссылку через сообщение, но мне это кажется довольно уродливым.
val ref = self
val i = new DefaultClass() {
override def fun(a: String) = {
b ! message(payload, ref)
}
}
Есть ли более элегантный способ решить эту проблему?