我想使用抽象類型而不是類型參數。scala類的構造函數和抽象類型
在我的泛型類的構造函數,我想有泛型類型的參數,但代碼不編譯:
class SomeOtherClass(val s: S){
type S
}
是「未發現:S型」 Scala編譯器錯誤
如果我使用一個類型參數,而不是一個抽象的類型,那麼它的工作原理:
class SomeClass[T](val t: T){
//...
}
是否斯卡拉強迫我用一個類型參數,而不是一個抽象類,如果我想有一個構造函數中的泛型參數?
是否有另一種方法可以做到這一點?
有趣的是,這將允許你創建新的SomeClass實例(5.asInstanceOf [SomeClass#S]){type S = Int}'。請注意,沒有安全性,演員陣容中的S仍未定義。 – Kaito 2012-08-07 12:43:56
所以基本上做得對,我需要看另外兩個答案? – 2012-08-07 13:16:09
@AntKutschera是的。 – Nicolas 2012-08-07 13:39:39