在运行时以字符串形式获取类型参数(Scala 2.11)
我一直在查看TypeTag上的文档及其类似内容,但没有解决这个问题 在下面的示例中,有没有一种方法可以通过替换???来解释运行时的参数化类型T???使用一些Scala魔法,所以运行时会打印“SomeClass”在运行时以字符串形式获取类型参数(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]
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)
}
极好的!非常感谢,太棒了!非常感谢你。