5

我目前正在学习scala。
为什么此代码不起作用:

class GenClass[T](var d : T) {
  var elems: List[T] = Nil 
  def dosom(x: T) = { 
    var y = new T() 
    y   
  }
}

我得到: 错误:需要类类型,但发现 T
代替了var y - new T()

是因为从java中擦除类型吗?有没有办法解决这个问题 - 在泛型函数中创建 T 类型的变量?

4

2 回答 2

5

看看这个问题,有一个工厂的例子: 如何在Scala中实例化由类型参数表示的类型的实例

于 2011-03-17T08:42:25.193 回答
2

因为你不能确定总是有一个公共的、无参数的构造函数。

于 2011-03-17T12:07:30.243 回答