我在尋找與下面的問題幫助向下轉換:Scala的泛型
case class A(val name: String)
class B(name: String) extends A(name)
class Base[T <: A](param: T)
class SubClass[T <: B](param: T)
object Factory {
def create[T <: A](param: T) = {
param.name match {
case "something" => new Base(param)
case "something else" => new SubClass(param)
}
}
}
工廠沒有因爲帕拉姆子類之間的不匹配的編譯期待(T:< B)和定義在T創建這是T:<答:是否有一個乾淨的解決方案,或者我需要在調用子類構造函數downcast?低調的樣子是怎樣的?
只要是明確的 - 當子類與PARAM池莉構建,參數是確實牛逼<的:B.
感謝。
'T: senia
'B類擴展A'不能編譯開始... –
感謝您的意見senia和luigi。錯別字固定。它除了討論的問題之外編譯。 – user1467422