有一个通用类型的类:
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?
}
答案 0 :(得分:11)
Scala在编译时会删除泛型类型参数,因此除了传统反射提供的内容之外,您还需要在对象中添加一些其他证据。参见:
How do I get around type erasure on Scala? Or, why can't I get the type parameter of my collections?
这个问题似乎暗示在某些情况下可能会有一些魔力: