Actualmente estoy aprendiendo scala.
Por qué este código no funciona:Genéricos de Scala: ¿por qué no puedo crear objetos parametrizados dentro de la clase genérica?
class GenClass[T](var d : T) {
var elems: List[T] = Nil
def dosom(x: T) = {
var y = new T()
y
}
}
me sale: error: tipo de clase necesaria pero T encontró
en lugar de var y - nueva T()
Es porque borra el tipo de Java? ¿Hay alguna manera de resolver esto? ¿Crear una variable de tipo T dentro de la función genérica?
Yup. Es una restricción de las raíces de Java. Usualmente uso una "función de constructor" (aprobada como argumento ctor, por ejemplo), p. '() => T', pero puede haber formas mucho más ingeniosas. –
Sí - para mí esta solución parece suficiente y simple. –
posible duplicado de [Cómo instanciar una instancia del tipo representado por el parámetro de tipo en Scala] (http://stackoverflow.com/questions/1305563/how-to-instantiate-an-instance-of-type-represented-by- type-parameter-in-scala) –