Generics 如何获取泛型类型的实际类型?
有一个泛型类型的类:Generics 如何获取泛型类型的实际类型?,generics,scala,Generics,Scala,有一个泛型类型的类: class Action[T] 创建它的一些实例,放入列表: val list = List(new Action[String], new Action[Int]) 迭代它,以及如何获得实例的实际类型 list foreach { action => // how do I know the action is for a String or an Int? } Scala在编译时会删除泛型类型参数,所以您需要在对象中有一些额外的证据,而不是传统反射
class Action[T]
创建它的一些实例,放入列表:
val list = List(new Action[String], new Action[Int])
迭代它,以及如何获得实例的实际类型
list foreach { action =>
// how do I know the action is for a String or an Int?
}
Scala在编译时会删除泛型类型参数,所以您需要在对象中有一些额外的证据,而不是传统反射提供的证据。见: 这个问题似乎暗示在某些情况下可能会有一些魔力:
我们在说什么语言?你能用
action.getClass()
吗?action.getClass
不能分辨实际的类型