是否可以使用jinjava library呈现列表?
到目前为止,我只能渲染HashMaps。我正在使用以下函数将案例类转换为哈希图。
largeHeap
为了呈现诸如 def toNestedJavaMap(caseClass: AnyRef): util.Map[String, Any] =
(new java.util.HashMap[String, Any]() /: caseClass.getClass.getDeclaredFields) { (accumulator, field) =>
field.setAccessible(true)
val value = field.get(caseClass) match {
case caseClassInstance: Product => toNestedJavaMap(caseClassInstance)
case x => x
}
accumulator.put(field.getName, value)
accumulator
}
之类的东西,我应该作为上下文传递什么?
答案 0 :(得分:0)
不确定为什么我不尝试传递java Iterable接口的实现...
这是经过修改的工作版本,可以在具有类似Stream的scala类型时考虑到转换。
def toNestedJavaMap(caseClass: AnyRef): util.Map[String, Any] =
(new java.util.HashMap[String, Any]() /: caseClass.getClass.getDeclaredFields) { (accumulator, field) =>
field.setAccessible(true)
val value = field.get(caseClass) match {
case listInstance: Stream[AnyRef] => listInstance.map(toNestedJavaMap).toList.asJava
case caseClassInstance: Product => toNestedJavaMap(caseClassInstance)
case x => x
}
accumulator.put(field.getName, value)
accumulator
}