我有一个特征和一些扩展这个特征的案例类。
sealed trait Bird
case class Eagle(age: Int) extends Bird
case class Sparrow(price: Double) extends Bird
如果我做任何我希望将 Trait 作为类型返回的事情,比如
val result = "test" match {
case s:String if s startsWith "t" => Eagle(5)
case _ => Sparrow(2)
}
我得到了这种Product
类型。
> result: Product with Serializable with Bird = Eagle(5)
我理解Product
是所有案例类都扩展的东西。但我不知道要处理什么Product
,我怎样才能得到Bird
甚至Eagle
返回呢?