How to get ClassTag form TypeTag, or both at same time?

The library doesn’t provide a built-in method that directly converts a TypeTag to a ClassTag, but you can write one:

import reflect.runtime.universe._
import reflect.ClassTag

def typeToClassTag[T: TypeTag]: ClassTag[T] = {
  ClassTag[T]( typeTag[T].mirror.runtimeClass( typeTag[T].tpe ) )
}

Then in your method just add before the implicit ClassTag is needed:

implicit val c = typeToClassTag[T]

Leave a Comment