我的应用程序具有以下Enum
。
object UserTokenType extends Enumeration {
type TokenType = Value
val RegistrationConfirmation = Value("RegistrationConfirmation")
val ResetPasswordConfirmation = Value("ResetPasswordConfirmation")
}
我使用id
中的Enum
将枚举值存储在数据库中。从数据库读取值时,我想重新创建Enum
,以便可以在数据模型中传递它。目前,我已按照以下步骤进行操作
val userTokenType:UserTokenType.TokenType = if(row.getInt("is_sign_up") == UserTokenType.RegistrationConfirmation.id) {
UserTokenType.RegistrationConfirmation
}else{
UserTokenType.ResetPasswordConfirmation
}
将Int
转换为Enum
的正确方法上方吗?
答案 0 :(得分:1)
正如评论中提到的@ som-snytt一样,您可以使用[apply(x:Int)](https://www.scala-lang.org/api/current/scala/Enumeration.html#apply(x:Int):Enumeration.this.Value)来构造枚举:
row.getInt("is_sign_up") match {
case id if id >= 0 && id < UserTokenType.maxId => Some(UserTokenType(id))
case _ => None
}