1
我認爲應該可以編寫一個適用於所有枚舉值的泛型函數。我第一次嘗試一個簡單的解析器,但我失敗了:Scala:枚舉值的泛型解析器
object Weekday extends Enumeration {
type Weekday = Value
val MONDAY = Value("MONDAY")
val OTHER = Value("OTHER")
implicit def valueToWeekday(v: Value): Weekday = v.asInstanceOf[Weekday]
implicit def stringToWeekday(s: String): Weekday = Weekday.withName(s)
}
object Enumerations {
import Weekday._
println("Welcome to the Scala worksheet")
def parseEnumeration[T <: Enumeration](s: String)(implicit ev: T): T#Value = {
ev.withName(s)
}
val test = parseEnumeration[Weekday]("MONDAY")
}
因此,如何能我寫一個generict函數獲取枚舉類型作爲參數,並返回一個類型的值?我在這裏與對象和內部類型具有相同的名稱有點困惑。
有點相關:https://stackoverflow.com/questions/21511656/declare-generic-method-returning-enumeration&https://stackoverflow.com/questions/14451152/scala-class-that-handles-enumerations-一般 – dskrvk