Obtenir la liste des noms de champs de la classe de cas de

J'ai besoin d'obtenir uniquement les noms de champs de la classe de cas. Je ne suis pas intéressé dans ses valeurs.
J'ai pensé getClass.getDeclaredFields.map(_.getName) doit retourner une liste de noms de champs.

scala> case class User(id: Int, name: String)
defined class User

scala> User.getClass.getDeclaredFields
res14: Array[java.lang.reflect.Field] = Array(public static final User$ User$.MODULE$)

scala> User.getClass.getDeclaredFields.toList
res15: List[java.lang.reflect.Field] = List(public static final User$ User$.MODULE$)

scala> val user = User(1, "dude")
user: User = User(1,dude)

scala> user.getClass.getDeclaredFields.toList
res16: List[java.lang.reflect.Field] = List(private final int User.id, private final java.lang.String User.name)

Qu'est-ce que cet Utilisateur$.MODULE de$? Qu'est-ce que?

Méthode getDeclaredFields fonctionne bien lorsque vous avez une instance d'une classe de cas, mais je ne veux pas créer une instance afin d'obtenir uniquement les champs.

Pourquoi ce n'est pas vrai:
User.getClass.getDeclaredFields.map(_.getName) == List("id", "name")?