Я думал, что должно быть возможно написать общую функцию, которая работает для всех значений Enumeration. Я попытался простой парсер первый, но мне не удалось: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 принимая тип перечисления в качестве параметра и возвращает значение этого типа? Я немного смущен здесь с Object и внутренним типом с тем же именем.
Немного связано: https://stackoverflow.com/questions/21511656/declare-generic-method-returning-enumeration & https://stackoverflow.com/questions/14451152/scala-class-that-handles-enumerations- обобщенно – dskrvk