我希望能够安全地根据值获得枚举。
object UserType extends Enumeration {
type UserType = Value
val Anonymous, Member, Paid = Value
}
如果我这样做:
UserType(100)
我收到错误:
java.util.NoSuchElementException: key not found: 100
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.mutable.HashMap.apply(HashMap.scala:65)
at scala.Enumeration.apply(Enumeration.scala:114)
... 32 elided
是否有类型安全的方法来执行此操作?
答案 0 :(得分:0)
您可以尝试在Enum的ValueSet上使用find,然后获取一个Option。如果该值不存在,您将获得None值(使用getOrElse非常方便)。
示例:
UserType.values.find(_ == 100)
我真的建议您阅读this answer,其中解释了如何为更好的类型安全枚举建模。