【发布时间】:2009-07-31 16:01:37
【问题描述】:
在 Java 工作了很长时间后,我开始对 Scala 产生了兴趣。 作为一个学习项目,我正在尝试复制一个 java 库来存储和检索数据库中的状态对象。 为此,我希望能够像这样指定一个状态对象:
@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 类来创建新的 Gender 值。
【问题讨论】:
-
为什么“只使用 Person 类”?
标签: reflection scala enumeration