我目前正在学习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 类型的变量?
我目前正在学习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 类型的变量?
看看这个问题,有一个工厂的例子: 如何在Scala中实例化由类型参数表示的类型的实例
因为你不能确定总是有一个公共的、无参数的构造函数。