У меня есть класс case, в котором есть два поля: Seq[Objects]
.Эти два объекта принадлежат двум разным классам наблюдений.
case class Passport(country: String, name: String)
case class DrivingLicence(code: String, name: String)
case class Docs(passports : Seq[Passport], driv: Seq[DrivingLicence])
val pass1 = Passport("UK", "Michael")
val pass2 = Passport("USA", "Michael")
val driv1 = DrivingLicence("A2", "Mich")
val driv2 = DrivingLicence("A4", "Mich")
val docs = Docs(Seq(pass1,pass2), Seq(driv1,driv2))
Я могу сгенерировать карту со всеми атрибутами и их типами, как показано ниже:
val r = currentMirror.reflect(docs)
val mapType = r.symbol.typeSignature.members.toStream
.collect{case s : TermSymbol if !s.isMethod => r.reflectField(s)}
.map(r => r.symbol.name.toString.trim -> r.symbol.typeSignature)
.toMap
println("Map of Types: "+mapType)
И вывод:
Карта типов: Карта (driv -> Seq [DrivingLicence], паспорта -> Seq [Passport])
Но я бы хотел избавиться от Seqчасть, и получить внутренний тип.Что-то вроде:
Карта типов: Карта (driv -> DrivingLicence, паспорта -> Паспорт)
Как я могу получить доступ к внутреннему типу Seq[_]
?