在 Scala 中,在类型擦除期间,泛型变量在泛型变量出现在类型位置的任何地方都被“对象”类型替换。
EG: val x T;
--> 被替换为val x Object;
因此,传递的确切类型的详细信息将在运行时变得不可用。
为了克服这个问题(在运行时获得确切的类型),提到 ClassTag 将帮助我们。
你能帮我ClassTag在运行时如何获取类型信息吗?
当提到 ClassTag 时,它也是用上下文绑定的泛型类型编写的。
例如:def method[T:ClassTag] {...}
所以我认为,这里提到的“T”也将被删除。但是 ClassTag 以某种方式保留了类型信息。我有点困惑这是如何工作的..(类似 TypeTag 和 WeakTag 也是如此)