Scala 如何将Map转换为case类(递归)
如何将带有嵌套映射的映射(键包含嵌套case cla的名称)转换为case类 假设我们有:Scala 如何将Map转换为case类(递归),scala,dictionary,reflection,case-class,Scala,Dictionary,Reflection,Case Class,如何将带有嵌套映射的映射(键包含嵌套case cla的名称)转换为case类 假设我们有: case class OuterClass(fieldName1: String, fieldName2: InnerClass) case class InnerClass(innerFieldName: Int) 如何转换: Map("fieldName1" -> "stringValue", "name" -> "ClassName", "fieldName2" -
case class OuterClass(fieldName1: String, fieldName2: InnerClass)
case class InnerClass(innerFieldName: Int)
如何转换:
Map("fieldName1" -> "stringValue",
"name" -> "ClassName",
"fieldName2" -> Map(
"innerFieldName" -> "value",
"innerClassName" -> "CaseClassName"))
到
OuterClass("stringValue", InnerClass("value"))
?您可以使用:
注意,这里不需要innerClassName
字段。如果您不知道根类的名称:
create(m.classSymbol(Class.forName("RootCaseClassName")).selfType, ...)
create(m.classSymbol(Class.forName("RootCaseClassName")).selfType, ...)