0
我有一个特质和几个案例类扩展了这个特点。案例类返回产品而不是实际类型
sealed trait Bird
case class Eagle(age: Int) extends Bird
case class Sparrow(price: Double) extends Bird
如果我做了什么,我会希望返回特质的类型,像
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
呢?