2016-04-13 14 views
0

Ben TypeTag ve onun ilk belgelerine bakıyordum ama bunu çözemedim.Çalışma zamanında dize olarak parametreler alın (Scala 2.11)

Aşağıdaki örnekte, T parametresini değiştirerek, parametreli T türünü yorumlamak için bir yol var mı? Bazı Scala sihirleri ile çalıştırdığınızda 'SomeClass' yazdı mı?

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 
    } 
} 

cevap

3

senin yöntemine örtük ClassTag[T] parametreyi ekleyin:

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

Fabulous! Çok teşekkür ederim. – user1062589

İlgili konular