Как преобразовать класс 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 => ???)
  }
Другие вопросы по тегам