我目前正在学习scala。
为什么这个代码不工作:Scala泛型 - 为什么我不能在泛型类中创建参数化对象?
class GenClass[T](var d : T) {
var elems: List[T] = Nil
def dosom(x: T) = {
var y = new T()
y
}
}
我得到: 错误:所需的类类型而T3发现
到位变种Y的 - 新T()
是它是因为从Java删除类型?有什么办法可以解决这个问题 - 在泛型函数内部创建类型T的变量?
是的。这是来自Java根源的限制。我通常使用“构造函数”(例如作为ctor参数传递),例如'()=> T',但可能有一些更好的方法。 – 2011-03-17 08:35:33
是的 - 对我来说这个解决方案看起来足够简单。 – 2011-03-17 14:25:30
[如何在Scala中实例化类型实例所代表的类型实例](http://stackoverflow.com/questions/1305563/how-to-instantiate-an-instance-of-type-represented-by- type-parameter-in-scala) – 2011-11-09 20:08:05