object EnumDemo {
def main(args: Array[String]): Unit = {
//常用方法
for (v <- WeekDay.values) {
println(v.id + ":" + v)
}
println("最大ID:" + WeekDay.maxId)
println("是否存在:"+WeekDay.checkExists("星期八"))
WeekDay.showAll
}
}
object WeekDay extends Enumeration {
//类型别名,所有枚举对象类型就可以写成WeekDay而不是Value
type WeekDay = Value
//protected final def Value(name: String): Value = Value(nextId, name)
//protected class Val(i: Int, name: String) extends Value with Serializable
//最终调用Val的主构造器。Val是Value的子类,Value是Enumeration的内部类。构建的时候id从0开始增长。
val Mon = Value("星期一")
val Tue = Value("星期二")
val Wed = Value("星期三")
val Thu = Value("星期四")
val Fri = Value("星期五")
val Sat = Value("星期六")
val Sun = Value("星期天")
def checkExists(day: String) = this.values.exists(_.toString == day)
def isWorkingDay(day: WeekDay) = !(day == Sat || day == Sun)
def showAll = this.values.foreach(println)
}