Вопрос здесь задает вопрос о сопоставлении класса case с Map [String, Any]. Мне было интересно, что будет наоборот, преобразование Map [String, Any] в класс case. Учитывая следующую карту:
val mp = Map("name" -> "Tom", "address" -> Map("street" -> "Jefferson st", "zip" -> 10000))
Преобразуйте его в класс case Person
:
case class Person(name:String, address:Address)
case class Address(street:String, zip:Int)
val p = Person("Tom", Address("Jefferson st", 10000))
с чем-то вроде этого:
val newP = mp.asCC[Person]
assert(newP.get == p)
Как мне сделать это с помощью Shapeless.