我想使用类型参数创建子类,但斯卡拉给"error: class type required but T found"
。例如:
abstract class Base {def name:String}
class Derived extends Base {def name:String = "Derived"}
class Main[T <: Base]
{
class SubBase extends T {}; // <--- error: class type required but T found
val x:SubBase;
println(x.name)
}
val m:Main[Derived]
我想这种方式,而不是正常的继承,因为在实际的代码,我懒的变量,在Base
和宣布,以Derived
定义,这些变量应该在Main
类执行计算
如何我可以做到?在此先感谢
这是不可能的,部分原因是由于没有运行时代码生成,因此类型擦除。在这种情况下,我认为组合优于继承。 – 2015-02-11 19:41:52