Saturday, 7 April 2018

scala populate data class from tuple values



scala> case class Order(id: String, items: Seq[String]) 
// defined case class Order

scala> ("DW-001" -> Seq("item1", "item2")) 
val res0: (String, Seq[String]) = (DW-001,List(item1, item2))

scala> (Order.apply _) tupled res0 
val res1: Order = Order(DW-001,List(item1, item2))


Obviously the tuple needs to have data as in a data class members. Out of sequence tuple won't be applied to data class.

scala> (Seq("item1", "item2"), "some-id") 
val res2: (Seq[String], String) = (List(item1, item2),some-id)
scala> (Order.apply _) tupled res2 
1 |(Order.apply _) tupled res2
  |                       ^^^^
  |                       found:    (Seq[String], String)(res2)
  |                       required: (String, Seq[String])
  |    

No comments:

Post a Comment