В Scala вы можете обернуть функцию получения с помощью LoggingReceive. Как добиться того же от Java API?
def receive = {
LoggingReceive {
case x ⇒ // do something
}
}
В Scala вы можете обернуть функцию получения с помощью LoggingReceive. Как добиться того же от Java API?
def receive = {
LoggingReceive {
case x ⇒ // do something
}
}
Scala API имеет декоратор LoggingReceive
, потому что литерал частичной функции затрудняет выражение того, что нужно делать во всех случаях (например, это ведение журнала).
В Java у вас нет этой проблемы, потому что ваш метод onReceive
вызывается всегда, и вы можете поместить оператор регистрации вверху, чтобы увидеть все сообщения, полученные актором. В качестве дополнительного бонуса вы можете решить, на каком уровне их регистрировать ;-)
Если вы хотите, чтобы ваше ведение журнала зависело от параметра конфигурации akka.actor.debug.receive
(так же, как для Scala), вы можете сказать, например,
if (getContext().system().settings().AddLoggingReceive())
log.debug("received message of type {}", msg.getClass());