Scala泛型-为什么我不能在泛型类中创建参数化对象? [英] Scala generics - why I can't create parametrised object inside generic class?
本文介绍了Scala泛型-为什么我不能在泛型类中创建参数化对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在学习scala.
为什么此代码不起作用:
I'm currently learning scala.
Why this code doesn't work:
class GenClass[T](var d : T) {
var elems: List[T] = Nil
def dosom(x: T) = {
var y = new T()
y
}
}
我得到:
错误:必需的类类型,但找到了T
代替 var y-新的T()
I get:
error: class type required but T found
in place of var y - new T()
是因为从Java中擦除了类型吗?有什么办法可以解决-在通用函数内创建类型T的变量?
Is it because type erasing from java? Is there any way to solve this - create variable of type T inside generic function?
推荐答案
看看这个问题,这里有一个工厂的例子: 如何实例化Scala中由类型参数表示的类型
have a look at this question, there's an example of a factory: How to instantiate an instance of type represented by type parameter in Scala
这篇关于Scala泛型-为什么我不能在泛型类中创建参数化对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文