如果不带括号的无参数大小写 类 在 Scala 中被弃用,为什么 Akka 仍然允许传递它们?

If parameter-less case classes without parentheses are deprecated in Scala, why does Akka still allow them to be passed?

我花了两天时间尝试调试消息未被参与者处理的问题,最终发现发送给它的消息的名称后没有括号。如果在 Scala 中不推荐使用不带括号的无参数大小写 类,为什么 Akka 仍然允许它们在没有警告的情况下发送?

我在这里猜测,但听起来您发送的是案例 class 的伴随对象,而不是案例 class 本身。 case class 默认情况下是可序列化的(所有 case classes 都是可序列化的,如果由可序列化的组件构造)但不保证同伴是可序列化的。

我想这里的问题不是伴生对象不是可序列化的。无论如何你都会收到警告 - 如果你使用 akka 远程处理,则会出现异常。问题可能是接收 actor 中的接收函数没有用于伴随对象的 case。

Akka 根本不关心您发送的是哪些消息,因为您可以将任何对象作为消息发送。检查你不应该发送已弃用的 class.

对我来说没有意义