如何获取Array的元素类型的TypeTag?

时间:2014-10-02 07:43:27

标签: arrays scala

给定变量x of type X&lt ;: Any,X和模式匹配的类型标记恢复x是Array[_]我想用一个想要类型标记的函数映射该数组对于元素。

我该怎么做,即如果我知道类型标签是数组的类型标签,我怎样在运行时为它的类型参数获取类型标签?

typeOf[X].tpe上匹配获取参数类型,但我不知道如何从那里构造类型标记。

1 个答案:

答案 0 :(得分:0)

你可以让编译器提供它,但它必须是它仍然知道的地方(所以你不能使用它,如果你模式匹配Any以找出它是什么类型的东西 - 这发生在运行时类型被删除的地方):

val tag = implicitly[TypeTag[X]]

或者,或许更清楚,作为您使用它的方法的隐式参数

def myOp[X <: Any](arr: Array[X])(implicit tag: TypeTag[X]) = ???