Ich denke an etwas ähnliches wie Safely copying fields between case classes of different types zu tun, sondern mit neu geordnet Felder, dhShapeless - wiederum eine Fallklasse in eine andere mit Feldern in einer anderen Reihenfolge
case class A(foo: Int, bar: Int)
case class B(bar: Int, foo: Int)
Und ich möchte etwas haben, eine drehen A(3, 4)
in eine B(4, 3)
- formlos LabelledGeneric
in den Sinn kommt, aber
LabelledGeneric[B].from(LabelledGeneric[A].to(A(12, 13)))
Ergebnisse in
<console>:15: error: type mismatch;
found : shapeless.::[shapeless.record.FieldType[[email protected]@[Symbol,String("foo")],Int],shapeless.::[shapeless.record.FieldType[[email protected]@[Symbol,String("bar")],Int],shapeless.HNil]]
(which expands to) shapeless.::[Int with shapeless.record.KeyTag[Symbol with shapeless.tag.Tagged[String("foo")],Int],shapeless.::[Int with shapeless.record.KeyTag[Symbol with shapeless.tag.Tagged[String("bar")],Int],shapeless.HNil]]
required: shapeless.::[shapeless.record.FieldType[[email protected]@[Symbol,String("bar")],Int],shapeless.::[shapeless.record.FieldType[[email protected]@[Symbol,String("foo")],Int],shapeless.HNil]]
(which expands to) shapeless.::[Int with shapeless.record.KeyTag[Symbol with shapeless.tag.Tagged[String("bar")],Int],shapeless.::[Int with shapeless.record.KeyTag[Symbol with shapeless.tag.Tagged[String("foo")],Int],shapeless.HNil]]
LabelledGeneric[B].from(LabelledGeneric[A].to(A(12, 13)))
^
Wie ordne ich die Felder im Datensatz (?) Neu, so dass dies mit einem Minimum an Standardwerten funktionieren kann?
Ich bin nicht an einer Maschine Ich kann jetzt ein Beispiel zusammensetzen, aber Sie sollten einen Blick auf die 'Ausrichten' Operation auf Aufzeichnungen werfen. –