2017-12-06 14 views
0

I再びケースクラスを作成するよりも、フィールドを変更するよりも、私は、ケースクラスからHlistを作成するために、型崩れの新たいのです、その可能型崩れすることによりこんにちは:ケースクラスをHListに変換する方法は、シェイプレスで再度ケースクラスを作成するよりも変更するのですか?

 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をexecしことはできません。 map(enumTransform) "私はそれを無形にすることはできますか?

答えて

0

はい、できます。

次のコードはコンパイルする必要があります

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 => ???) 
    } 
関連する問題