Я попытался написать универсальный актер, и он может получить универсальное событие
case class CreateEvent[T](t: T)
trait MyBaseActor[Type] extends Actor {
override def receive: Receive = {
case CreateEvent(t: Type) => ....
}
}
Затем я создаю реального актера
case class HasName(name: String)
class MyActor extends MyBaseActor[HasName]
И я ожидаю, что MyActor
может обработать сообщениеCreate(HasName("hello")
также.Но когда я компилирую код, я получил это предупреждение:
abstract type pattern Type is unchecked since it is eliminated by erasure
И мой актер также не может получить CreateEvent
.Может быть, я недостаточно разбираюсь в Generic in scala, пожалуйста, помогите мне объяснить, почему он не работает и как я могу это исправить