После долгой работы в Java я начал интересоваться Scala. Как учебный проект, я пытаюсь дублировать библиотеку java, которая хранит и извлекает объекты состояния из базы данных. Для этого, я хотел бы иметь возможность просто указать объект состояния, как это:Scala enumeration and reflection
@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
}
Код для сериализации/ип-сериализовать экземпляр Person использует отражение знать типы полей и работает нормально для все, кроме гендерного поля. Поле гендера является перечислением, которое определяется как:
object Gender extends Enumeration {
type Gender = Value
val Male,Female,Unknown = Value
}
Проблема заключается в том, что я не знаю, как я могу использовать отражение слишком создать новое значение Пола, используя только класс Person.
Почему «используя только класс Person»? – Blaisorblade