ScalaではReflectionを使うとより詳細な型情報を取得することができます。 クラス情報を取得 (Scala2.10以前) Scala2.10以前では、以下のように型情報を取得できます。 case class Person(id:Int, name:String, age:Option[Int]) val c = classOf[Person] // Class[Person]を取得 c.getSimpleName // Person c.getName // Personクラスのパッケージ名を含むfull path しかし、Personクラスにどのような型の変数が定義されているを知りたい場合、 javaのReflection機能を使う。Class.getDeclaredFields/Methodsなど javapやASMなどでコンパイル後のバイトコードを直接参照 ScalaSig