Как преобразовать класс case в HList, чем модифицировать, чем снова создать класс case с помощью бесформенного?
Здравствуйте, я новичок в бесформенном, я хочу создать Hlist из класса case, чем модифицировать поля, чем снова создать класс case, это возможно с помощью shapeless:
val user:RfModelCalibration = users.head
val transformer = Generic[RfModelCalibration]
val beforeTransform = transformer.to(user)
val afterTransform = beforeTransform.map(enumTransform)
val newCaseClass = transformer.from(afterTransform)
Но я не могу выполнить "beforeTransform.map(enumTransform)" Могу ли я сделать это бесформенным?
1 ответ
Да, ты можешь.
Следующий код должен скомпилироваться:
import shapeless.{Generic, Poly1}
case class RfModelCalibration(field1: Field1, field2: Field2)
val user: RfModelCalibration = users.head
val transformer = Generic[RfModelCalibration]
val beforeTransform = transformer.to(user)
val afterTransform = beforeTransform.map(enumTransform)
val newCaseClass = transformer.from(afterTransform)
object enumTransform extends Poly1 {
implicit val cse1: Case.Aux[Field1, Field1] = at(x => ???)
implicit val cse2: Case.Aux[Field2, Field2] = at(x => ???)
}