Есть ли способ динамически создать экземпляр Enumeration # Value в Scala?Динамическая реализация Scala Enumeration
До сих пор у меня есть:
object Letter extends Enumeration {
val A,B,C = Value
}
// fieldType is of type Universe.Type for the field in my case class, which happens to
// be of type Letter.Value
val ftype = fieldType.typeSymbol.name.toString
val enumVal = "B" // a valid Enumeration.Value
val erasedEnumType = fieldType.asInstanceOf[TypeRef] // Letter
что теперь? В этом случае я пытаюсь получить объект значения Letter.B.
Я видел этот клип на другую публикацию:
def create[T <: Enum[T]](clazz: Class[T], input: String): T = Enum.valueOf(clazz, input)
Я не мог бы сделать эту работу, потому что у меня нет «T» во время компиляции (я разбор этого значения из входных строк в во время выполнения).
Ok, имеет смысл. Как я могу это сделать? Помните, что я не знаю «Письмо» во время компиляции. Я разбираю строковый ввод. Я могу понять, как описано выше, поэтому я знаю тип и могу получить стираемый тип, но я все еще зацикливаюсь на извлечении значения. – Greg