2016-04-13 31 views
0

TypeTagとそのilkに関するドキュメントを見てきましたが、これを解決できませんでした。実行時に型パラメータを文字列として取得する(Scala 2.11)

実行時にパラメータ化された型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 
    } 
} 

答えて

3

あなたの方法に暗黙のClassTag[T]のパラメータを追加します。

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

素晴らしいを!どうもありがとうございます。 – user1062589

関連する問題