Акка статическое использование

У меня есть простая система актера с конфигурацией по умолчанию.

У меня есть расширенный класс актера

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)
  }
}
Другие вопросы по тегам