Après avoir travaillé longtemps en Java, j'ai commencé à m'intéresser à Scala. En tant que projet d'apprentissage, j'essaie de dupliquer une bibliothèque Java qui stocke et récupère des objets d'état de la base de données. Pour cela, je voudrais pouvoir simplement spécifier un objet d'état comme celui-ci:Scala énumération et réflexion
@PersistName("PERSON") case class Person extends Entity {
@Persist var id:Long = -1
@Persist @MaxLength(80) var firstName = ""
@Persist @MaxLength(80) var lastName = ""
@Persist var gender = Gender.Male
@Persist @MaxLength(80) var userName = ""
@Persist @OptionClass(classOf[Date]) var birthDay:Option[Date] = None
}
Le code de sérialisation/non-sérialisation une instance de personne utilise la réflexion pour connaître les types de champs et fonctionne bien pour tout sauf le domaine du genre. Le champ de genre est un Enumeration qui est défini comme:
object Gender extends Enumeration {
type Gender = Value
val Male,Female,Unknown = Value
}
Le problème est que je ne sais pas comment créer je peux utiliser la réflexion aussi une nouvelle valeur de genre en utilisant uniquement la classe Person.
Pourquoi « en utilisant uniquement la classe Person »? – Blaisorblade