你如何定義一個Scala方法,使它能夠在不引發編譯錯誤的情況下接受任何類型A的子類?如何定義scala方法的上限
trait A
case class B extends A
case class C extends A
case class W[T](abc: Option[T]= None)
def methodOne(a: A): W[A] = {
a match {
case b:B => methodTwo() // throws compilation error
case c:C => methodThree() // throws compilation error
}
}
def methodTwo(): W[B] = y
def methodThree(): W[C] = z
試過類似
def methodOne[T <: A](a: A): W[T]
,但它不允許編譯仍然
謝謝!這工作... – Stanley