Визуализация списков с использованием библиотеки jinjava
Можно ли визуализировать списки, используя библиотеку jinjava?
До сих пор я мог только визуализировать HashMaps. Я использую следующую функцию для преобразования классов case в hashmaps.
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
}
Что я должен передать в качестве контекста, чтобы сделать такие вещи, как {% for item in items %}
?
1 ответ
Не уверен, почему я не попытался передать реализацию Java Iterable интерфейса...
Это рабочая версия, измененная для учета преобразования при использовании потоковых типов 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
}