在Scala中,是否可以创建采用泛型的类的类对象

在Scala中,是否可以创建采用泛型的类的类对象,scala,generics,Scala,Generics,在下面运行时的代码中,该值将只是类列表的一个实例。 是否可以使用typetags或classtags创建类列表[T]的实例 private def method[T <: Product](clazz: Class[T]) = { val value: Class[List[T]] = classOf[List[T]] } private def method[T您可以调用ClassTag的runtimeClass方法来获取类[T],您可以从中调用。从那里,您必须使用Ja

在下面运行时的代码中,该值将只是类列表的一个实例。 是否可以使用typetags或classtags创建类列表[T]的实例

  private def method[T <: Product](clazz: Class[T]) = {
    val value: Class[List[T]] = classOf[List[T]]
  }

private def method[T您可以调用ClassTag的
runtimeClass
方法来获取类[T],您可以从中调用。从那里,您必须使用Java反射。在任何情况下,在运行时您都会有一个列表,您不能创建List[Int]的实例,因为这样的实例在运行时永远不存在。为了创建List[T]的实例,您需要有某种值。您希望这些值从何而来?您的问题并不十分清楚。您能将其放在更广泛的上下文中吗?您将如何使用创建的
List[T]
?问题是JVM对泛型使用类型擦除,因此在运行时实际上只有
List[\u]
,而
T
丢失。另一方面,如果
List
T
中是协变的,
Nil
可以作为
List[T]工作
对于任何
T
而言,您真正的问题仍然不清楚。虽然此代码可能会回答问题,但提供有关此代码为什么和/或如何回答问题的附加上下文可提高其长期价值。
import scala.reflect.ClassTag

def create[A: ClassTag](): List[A] = List.empty[A]
create[Int]()