Мне нужно проверить целостность вложенных схем и, следовательно, писать классы case для этого. Основное препятствие, с которым я столкнулся, это схема, которая может иметь поле (скажем, name
) либо из String
, либо типа Utf8
, и я хочу принять оба экземпляра. Можно ли избежать два класса регистра, какКласс случая Scala с аргументом нескольких типов
case class NameValueString(name: String, value: Double)
case class NameValueUtf8(name: Utf8, value: Double)
и что-то вроде
case class NameValue(name @(_:String | _:Utf8), value: Double)
Приведенное выше выражение, конечно, не может компиляции.
Нихилу
Я хотел бы создать новый конструктор корпус класса NameValueString (имя: String, значение: Double) { защиту это (имя: UTF8, значение: Double) = это (name.toString, значение) } это действительно для вас? – gasparms