Classe de caso Scala “reflexão”

As classes de caso se misturam automaticamente na característica do produto, fornecendo acesso não tipado e indexado aos campos sem qualquer reflexão:

case class Person(name: String, age: Int)

val p
= Person("Eugene", 45)
val name
= p.productElement(0) // name = "Eugene": Any
val age
= p.productElement(1) // age = 45: Any
val fields
= p.productIterator.toList // fields = List[Any]("Eugene", 45)