在运行时以字符串形式获取类型参数(Scala 2.11)

在运行时以字符串形式获取类型参数(Scala 2.11),scala,Scala,我一直在查看TypeTag上的文档及其类似内容,但没有解决这个问题 在下面的示例中,有没有一种方法可以通过替换???来解释运行时的参数化类型T???使用一些Scala魔法,所以运行时会打印“SomeClass” class SomeClass trait TheTrait[T] { def showClassNameOfT = println("class name of T is: " + ???) } object Foo extends TheTrait[SomeClass]

我一直在查看TypeTag上的文档及其类似内容,但没有解决这个问题

在下面的示例中,有没有一种方法可以通过替换???来解释运行时的参数化类型T???使用一些Scala魔法,所以运行时会打印“SomeClass”

class SomeClass

trait TheTrait[T] {
    def showClassNameOfT = println("class name of T is: " + ???)
}

object Foo extends TheTrait[SomeClass] {
    def main(args: Array[String]): Unit = {
        showClassNameOfT
    }
}

将隐式
ClassTag[T]
参数添加到方法中:

trait TheTrait[T] {
  def showClassNameOfT(implicit ct:ClassTag[T]) =
    println("class name of T is: " + ct.runtimeClass.getSimpleName)
}

将隐式
ClassTag[T]
参数添加到方法中:

trait TheTrait[T] {
  def showClassNameOfT(implicit ct:ClassTag[T]) =
    println("class name of T is: " + ct.runtimeClass.getSimpleName)
}

极好的!非常感谢,太棒了!非常感谢你。