Акка статическое использование
У меня есть простая система актера с конфигурацией по умолчанию.
У меня есть расширенный класс актера
class Test extend Actor {
def receive: Receive = {
case Foo(collection) => sender ! extract(collection)
}
private def extract(c: List[FooItem]): List[BarItem] = ???
}
У этого актера есть объект-компаньон
object Test {
def props: Props = ???
}
Есть ли безопасно сделать функцию извлечения, как это:
object Test {
def props: Props = ???
def extract(c: List[FooItem]): List[BarItem] = ???
}
и использовать от другого актера?
1 ответ
Решение
Да, можно определить метод для компаньона, а затем импортировать и использовать этот метод в классе актера. Примерно так будет работать нормально:
object Test {
def props: Props = Props[Test]
def extract(c: List[FooItem]): List[BarItem] = {
. . .
}
}
class Test extend Actor {
import Test._
def receive: Receive = {
case Foo(collection) => sender ! extract(collection)
}
}